如何(我可以)从 NSFetchedResultsController 获取其他部分的内容?
Posted
技术标签:
【中文标题】如何(我可以)从 NSFetchedResultsController 获取其他部分的内容?【英文标题】:How to(Can I) get the content of other section from a NSFetchedResultsController? 【发布时间】:2016-01-19 07:01:08 【问题描述】:假设我有一个这样的数据库表:
|编号 |性别| |--------|--------| | 0001 |男 | | 0002 |男 | | 0003 |女| | 0004 |女|我使用带有“id”作为 NameKeyPath 的 NSFetchedResultsController 来获取四个部分:
var fetchedID = NSFetchedResultsController(fetchRequest: fetchRequest,
managedObjectContext: managedContext,
sectionNameKeyPath: "id", cacheName: nil)
do
try fetchedDay.performFetch()
catch
fatalError("Failure to save context: \(error)")
我知道我可以通过这个获得 id:
var ID = fetchedID.sections![0].name
问题是:我也想同时获取每个id的性别。
我可以吗?
非常感谢!
【问题讨论】:
【参考方案1】:使用“id”作为sectionNameKeyPath
将为每个唯一ID 单独设置一个部分,将具有相同ID 的所有实例分组到一个组中。由于 id 可能是唯一的,这意味着每个组将是一条记录。与其在一个唯一的字段上分组,只是为sectionNameKeyPath
指定一些东西,通常最好只指定nil
在每个部分中,您将获得完整记录,因此您可以使用fetchedID.sections![n]
返回nth
部分,并可以使用fetchedID.sections![x].objects![y]
获取单个记录以获取@ 中的yth
对象987654328@部分。
或者,您可以使用 FetchedResultsController 的 fetchedObjects
属性获取所有记录,独立于部分:fetchedID.fetchedObjects[n]
【讨论】:
以上是关于如何(我可以)从 NSFetchedResultsController 获取其他部分的内容?的主要内容,如果未能解决你的问题,请参考以下文章
核心数据难题:不能两次调用 NSFetchedResults
合并“NSManagedObjectContextDidSaveNotification”后,NSFetchedResultsController 未显示所有结果
使用 Core Data 在 Swift 3 中保存和检索 MKAnnotations
iOS - 将单元格添加到带有核心数据和 NSFetchedResultsController 的空 UITableView 部分