beginner in the code, I block on the line "let fighter = Fighter () ' Xcode displays "Missing argument for parameter 'name' in call"

I'm beginner in the coding and I block on the line "let fighter = Fighter () '
Xcode displays "Missing argument for parameter 'name' in call"

class Player{
   
  var name: String
  var characters: [Character] = []
   
  init(name: String){
    self.name = name
  }

func chooseYourCharacter() {
      if let readline = readLine() {
        if let choose = Int(readline) {
          switch choose {
             
          case 1:
          let fighter = Fighter()
            
            fighter.namedCharacter()
            if fighter.goodCharacterName(arrayOfCharacter: self.characters) == true {
              characters.append(fighter)
            }
Accepted Answer
It depends on the definition of Fighter. Please show the code of Fighter.

And please use Code block (see the icon <>) feature of this site when posting codes.
And you should better not show partial code, when parentheses are not matching, there may be some issue in the hidden parts.
Code Block SWIFT
class Fighter : Character{
  init(name: String) {
    super.init(charactersName: name, weapon: Sword(), lifePoint: 100)
  }
}

OK, thanks for your advice, here is my class fighter






Your Fighter has only one initializer taking a parameter name.
What do you want to pass to the parameter name?
Code Block
let fighter = Fighter(name: ???) //<- You need to clarify what is placed to `???`


You could also define an init:

Code Block
class Player {
var name: String = "No Name"
var characters: [Character] = []
init(name: String){
self.name = name
}
init() {
}
}

Then
Code Block
let player = Player()
print("Player's name", player.name)

gives
Player's name No Name

Or define name in init()
Code Block
class Player {
var name: String
var characters: [Character] = []
init(name: String) {
self.name = name
}
init() {
self.name = "No Name"
}
}

same result.


ok, thanks for your help !

Don't forget to close the thread when done.

Good continuation.
beginner in the code, I block on the line "let fighter = Fighter () ' Xcode displays "Missing argument for parameter 'name' in call"
 
 
Q