arrays - swift/iOS : Append Adding Elements to Array but are not Accessible

标签 arrays swift

我无法理解为什么使用 .append 后无法访问数组中的元素

我在这里声明一个空数组...

var entries:Array<Entry> = []

然后我将条目添加到此处的数组中...

var json = self.JSONParseArray(data)
for(var i = 0; i < json.count; i++)
{
    let fName = json[i]["FirstName"] as String
    let lName = json[i]["LastName"] as String
    let sC = json[i]["SelectionCode"] as String
    let id = json[i]["ID"] as String
    let iURL = json[i]["ImageURL"] as String
    let currEntry:Entry = Entry(fn: fName, ln: lName, sC: sC, id: id, img: iURL)
    self.entries.append(currEntry)
}

但是当我在这里调用 .count 方法时...

println(self.entries.count)

我得到“0”作为输出,就好像没有元素添加到数组中一样。

对象在这里定义...

class Entry {
    var dbID:String
    var firstName:String
    var lastName:String
    var selectionCode:String
    var imageLink:String

    init(fn:String, ln:String, sC:String, id:String, img:String){
        firstName = fn
        lastName = ln
        selectionCode = sC
        dbID = id
        imageLink = img
    }
}

因此,当我尝试访问数组中的元素时,会收到错误消息...

fatal error: Cannot index empty buffer

我在创建和附加对象的循环之后设置了一个断点,它们存在于调试器局部变量中的正确索引处,但无法访问。

提前致谢!

最佳答案

嘿,有一个更好的方法来做到这一点。您在这里所做的一切都是从某个值映射到其他值。如果您正在映射某些内容,您应该考虑使用 map 函数。操作方法如下:

let jsonArray = self.JSONParseArray(data)
let entries: [Entry] = jsonArray.map { json: [NSObject: AnyObject] in
    let fName = json["FirstName"] as String
    let lName = json["LastName"] as String
    let sC = json["SelectionCode"] as String
    let id = json["ID"] as String
    let iURL = json["ImageURL"] as String
    return Entry(fn: fName, ln: lName, sC: sC, id: id, img: iURL)
}

关于arrays - swift/iOS : Append Adding Elements to Array but are not Accessible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26475242/

相关文章:

python - 解释 numpy.where 结果

python - 如何在 python 中使用 numpy 获取具有最多给定元素的二维矩阵(列表)中的列和行的索引

arrays - 一次访问数组的一些元素并环绕到开头

swift - 使用 json 序列化的 void 函数 swift 4 中出现意外的非 void 返回值

Swift - 内容 View 的大小与 UITableViewCell 不匹配

ios - Swift - Firebase 如何在没有父项的情况下仅获取子项值

c - 如何在 C 中显示数组的值?

Javascript 数组,查找并组合具有重复值的条目

ios - 调用函数 swift 时使用另一个类获取位置不起作用

ios - 如何在 Swift 4 中的 View Controller 中将多个 uiview 拖动到另一个 uiview 或图像上