假设我有一个这样的数据库表:
| id | gender| |------|-------| | 0001 | Male | | 0002 | Male | | 0003 | Female| | 0004 | Female|
我使用带有“id”的NSFetchedResultsController作为NameKeyPath来获取四个部分:
var fetchedID = NSFetchedResultsController(fetchRequest: fetchRequest,
managedObjectContext: managedContext,
sectionNameKeyPath: "id", cacheName: nil)
do {
try fetchedDay.performFetch()
} catch {
fatalError("Failure to save context: \(error)")
}
我知道我可以对此表示同意:
var ID = fetchedID.sections![0].name
问题是:我还希望同时获得每个ID的性别。
我可以吗?非常感谢!
答案 0 :(得分:1)
使用“id”作为sectionNameKeyPath
,您将为每个唯一ID分配一个单独的部分,将具有相同ID的所有实例分组到一个组中。由于id可能是唯一的,这意味着每个组都将是一个记录。除了为唯一字段进行分组,只需为sectionNameKeyPath
指定内容,通常最好只指定nil
在每个部分中,您将获得完整记录,因此您可以使用fetchedID.sections![n]
返回nth
部分,并可以使用fetchedID.sections![x].objects![y]
获取单个记录以获取{ {1}}部分中的{1}}对象。
或者,您可以使用FetchedResultsController的yth
属性获取所有独立于部分的记录:xth