为什么在向对象追加对象后数组为空

时间:2015-05-15 02:22:16

标签: ios arrays swift append

我在TableViewController中工作,我正在尝试填充plist中的数据。

我在顶部声明了这一点:

var studentsArray:Array<StudentData>?

现在我在一个加载我的plist的函数中执行以下操作:

    var path = NSBundle.mainBundle().URLForResource("students", withExtension: "plist")
    let tmpArray = NSArray(contentsOfURL: path!)

    for studentDict in tmpArray!{
        let name = studentDict["name"]as! String
        let dateOfBirth = studentDict["dateOfBirth"] as! NSDate
        let regular = studentDict["regular"] as! Bool
        let photoFileName = studentDict["photoFileName"] as! String

        let data = StudentData(name : name, dateOfBirth: dateOfBirth, regular : regular, photoFileName: photoFileName)

        self.studentsArray?.append(data)
        println(studentsArray!.count)

    }

我尝试记录对象的属性,它们都被填写,但它在.append出错了,不知怎的,它只是不会这样做。该数组的计数仍为“无”数字。记录时。

我有点迷失在这里!任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:4)

看起来你没有在任何地方初始化studentArray。一定要这样做。对于记录,如果数组为空,则array.count应为0,而不是nil。如果你看到nil意味着数组可能是nil(也就是你没有初始化它)。

答案 1 :(得分:0)

尝试将您的数组声明更改为此,并让我知道它是否有效。希望它有所帮助:

var studentsArray:Array<StudentData>? = Array<StudentData>()