ios - Swift2 的数组

标签 ios arrays 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 方法。我收到错误消息“Thread: 6: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)”

最佳答案

首先,假设您使用 (a) 三个属性定义了“person”类;和 (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))
}

关于ios - Swift2 的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33590846/

相关文章:

Swift if 语句问题

ios - 创建后快速刷新 TableView

ios - 开/关声音(IOS)

ios - Git 克隆后 XCode 项目位置错误

ios - 为什么将 Core Data 与 CloudKit 一起使用时关系必须是可选的?

java - 将 float 组发送到部署在 Google Cloud ML-Engine 上的 Tensorflow 模型

ios - 如何创建一个 UITableView 在 objective-c 的一行中加载 2 个自定义单元格?

c - 在 C 中对整数数组求和

javascript - 为什么单击不同的按钮时会出现相同的数组值?

ios - 如何将变量设置为从 0 开始并通过嵌套 for 循环 Swift 2 中的每个循环获得一个级别