Swift和核心数据 - 数组和单元格基础知识

时间:2014-12-22 20:53:18

标签: ios arrays uitableview core-data swift

如果我将我的数组定义为:

var myList: Array <AnyObject> = []

然后使用viewDidLoad覆盖函数来填充此数组:

override func viewDidAppear(animated: Bool) {
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context:NSManagedObjectContext = appDel.managedObjectContext!
    let freq = NSFetchRequest(entityName: "List")

    myList = context.executeFetchRequest(freq, error: nil)!
    tableView.reloadData()
}

和我的“列表”仅包含用户名作为字符串。究竟什么存储在“myList”中?它是否与带有用户名的字符串数组一样简单?

任何想法和解释都将受到高度赞赏。

2 个答案:

答案 0 :(得分:1)

如果您已定义该类,则myList将包含NSManagedObjectList个实例的子类。每个对象都具有您为该核心数据对象定义的属性。

indexPath是一个用于表示row的{​​{1}}和section的类。这也用于标识UITableView的{​​{1}}和item

答案 1 :(得分:1)

executeFetchRequest从CoreData数据存储中返回托管对象的数组。基本上有两种方法可以处理它们。

首先是按原样使用它们。它们都是NSManagedObject的实例,您可以使用valueForKey:之类的方法来获取它们的值。

第二种方法是定义自己的NSManagedObject子类,在你的情况下可能命名为List,然后在该对象上定义属性,允许你直接访问这些值。

核心数据作为一个整体既疯狂强大又极其复杂。我强烈建议您完成一个教程,Apple'sotherwise,以便掌握它。 (请注意,Apple的一些文档建议从名为 Core Data Starting Point 的东西开始。有帮助的是,Apple已经退出该文档,但尚未从其他文档中删除对它的引用。)