如果我将数组定义为:
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"中究竟存储了什么?它是否像带有用户名的字符串数组一样简单?
任何想法和解释将不胜感激。
如果您定义了NSManagedObject
或List
实例的子类,则您的myList
将包含该类。每个对象都具有您为该核心数据对象定义的属性。
indexPath
是一个类,用于表示UITableView
的row
和section
。这也用于识别UICollectionView
的item
和section
。
executeFetchRequest
从CoreData 数据存储返回托管对象的数组。基本上有两种方法可以处理它们。
首先是按原样使用它们。它们都是 NSManagedObject
的实例,您可以使用 valueForKey:
等方法来获取它们的值。
第二种方法是定义你自己的NSManagedObject
子类,在你的例子中可能命名为List
,然后定义该对象的属性,允许你直接访问值。
核心数据作为一个整体既强大得离谱,又复杂得离谱。我强烈建议您完成一个教程,无论是Apple的还是其他的,以掌握它。(请注意,Apple的一些文档建议从称为Core Data Start Point的内容开始。有用的是,Apple已经停用了该文档,但尚未从其他文档中删除对它的引用。