簡體   English   中英

Swift2的陣列

[英]Arrays for Swift2

我有兩個單獨的.swift文件。 我想使用ManagePerson.swift來管理我的Strings例如添加和檢索。 另一個ViewController.swift創建一個ManagePerson類的數組來訪問數據。

在我的ManagePerson.swift中

func addPerson(name: String, code: String, description: String){
    self.name = name
    self.code = code
    self.description = description
}

在我的ViewController.swift中。

var personList = [PersonTable]() // Declared at class level

for jsonObjectString in resultArray! {
    let name = jsonObjectString["Name"] as! String
    let code = jsonObjectString["Code"] as! String
    let description = jsonObjectString["Description"] as! String
    self.personList[count].addPerson(Name, code: code, description: description)
    count++
}

但是,我似乎無法執行.addPerson方法。 我收到一個錯誤“線程:6:EXC_BAD_INSTRUCTION(代碼= EXC_I386_INVOP,子代碼= 0x0)”

首先,讓我們假設您使用以下三個屬性定義了“人”類: (b)設置這些屬性的init方法:

class Person {
    let name: String
    let code: String
    let description: String

    init(name: String, code: String, description: String) {
        self.name = name
        self.code = code
        self.description = description
    }
}

然后,實例化一個Person ,只是

let person = Person(name: "Joe Montana", code: "16", description: "Quarterback")

如果需要這些Person對象的數組,則將其定義為:

var personList = [Person]()

因此,要將Person添加到此數組,它是:

personList.append(Person(name: "Joe Montana", code: "16", description: "Quarterback"))

因此,如果resultArray是字典數組,則添加如下項:

for dictionary in resultArray! {
    let name = dictionary["Name"] as! String
    let code = dictionary["Code"] as! String
    let description = dictionary["Description"] as! String
    personList.append(Person(name: name, code: code, description: description))
}

但是請注意,我們不必弄亂count (因為您可以將其添加到數組中)。

或者,如果這些值可以為nil ,則可以將它們定義為可選值:

class Person {
    let name: String?
    let code: String?
    let description: String?

    init(name: String?, code: String?, description: String?) {
        self.name = name
        self.code = code
        self.description = description
    }
}

for dictionary in resultArray! {
    let name = dictionary["Name"] as? String
    let code = dictionary["Code"] as? String
    let description = dictionary["Description"] as? String
    personList.append(Person(name: name, code: code, description: description))
}

這是因為self.personList[count]nil它不包含任何PersonTable實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM