【问题标题】:Why is array empty after appending object to it为什么将对象附加到数组后数组为空
【发布时间】:2015-07-26 20:21:30
【问题描述】:

我正在一个 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 出现了错误,并且不知何故它不会这样做。记录时数组的计数保持为“Nil”。

我有点迷路了!任何帮助表示赞赏。

【问题讨论】:

  • var studentsArray:[StudentData] = []
  • @LeonardoSavioDabus 非常感谢,工作就像一个魅力!
  • @LeonardoSavioDabus,您应该发表您的评论作为答案。您是第一个提供正确解决方案的人。
  • @DuncanC Will M. 回答了这个问题。

标签: ios arrays swift append


【解决方案1】:

您似乎没有在任何地方初始化 studentsArray。确保这样做。作为记录,如果数组为空,array.count 应该为 0,而不是 nil。如果您看到 nil,则表示该数组可能为 nil(也就是您没有初始化它)。

【讨论】:

    【解决方案2】:

    尝试将您的数组声明更改为此并告诉我它是否有效。希望对您有所帮助:

    var studentsArray:Array&lt;StudentData&gt;? = Array&lt;StudentData&gt;()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      相关资源
      最近更新 更多