2016-09-05 2 views
1

私は最近Swiftの学習を始めました。私のプログラムの一環として、クラスインスタンスの配列を維持しようとしています.appendを使用して新しいインスタンスをクラスの配列に追加します。クラスの配列に.appendを使用したときのSwift "呼び出し時の余分な引数"エラー

ただし、新しいクラスインスタンスを配列に追加しようとすると、「呼び出し中の余分な引数」エラーが表示されます。私はすべての変数のデータ型を指定して、競合するデータ型にコンパイラエラーがないことを確認していますが、まだ問題は解決していません。

import UIKit 

var personMgr: personManager = personManager() 

class person{ 

    var name:String = "Default" 
    var description:String = "Default" 
    var presentIdeasDict:[Int: String] = [ 
     0: "nil" 
    ] 
    var presentLinkDict:[Int: String] = [  //Use same key for name of present idea and link for the present 
    0: "nil" 
    ] 

} 

class personManager{ 

    var people = [person]() 

    func addPerson(name: String, description: String){ 
     people.append(person(name: name, description: description, presentIdeasDict: [0: "nil"], presentLinkDict: [0: "nil"])) 
    } 

} 

エラー「行の呼び出しに余分な引数の 『name』:

people.append(person(name: name, description: description, presentIdeasDict: [0: "nil"], presentLinkDict: [0: "nil"])) 
+0

可能な複製(http://stackoverflow.com/questions/24795035/swift-extra-argument-in-call) – Patrick

答えて

1

あなたはあなたのための初期化にする必要があり、 『言う:人を』ここ

コードですクラス。

イニシャライザパラメータのデフォルト値も設定できることに注意してください。この方法では、いくつかの場所でデフォルトを使用する必要はありません(他のイニシャライザのデフォルトパラメータを省略することもできます)。

また、慣例によりクラス名は大文字にする必要があります。

例:[スウィフト - 通話中に追加の引数]の

class Person { 

    var name:String 
    var description:String 
    var presentIdeasDict:[Int: String] 
    var presentLinkDict:[Int: String] 

    init(name: String = "Default", description: String = "Default", presentIdeasDict: [Int: String] = [0: "nil"], presentLinkDict: [Int: String] = [0: "nil"]) { 
     self.name = name 
     self.description = description 
     self.presentIdeasDict = presentIdeasDict 
     self.presentLinkDict = presentLinkDict 
    } 

} 

class PersonManager { 

    var people = [Person]() 

    func addPerson(name: String, description: String) { 
     people.append(Person(name: name, description: description)) 
    } 

} 
関連する問題