gpt4 book ai didi

ios - 为什么 NSFetchedResultsController 没有检索到我的多对多关系?

转载 作者:行者123 更新时间:2023-11-30 14:10:49 28 4
gpt4 key购买 nike

我有一个表格 View ,我正在其中创建束(部分)和伙伴(行)的分段列表。好友和群组之间的关系在核心数据中是多对多的。我想使用 NSFetchedResultsController 来提供此 TableView 的数据。注意:我用了this tutorial设置 NSFetchedResultsController

这是我的 NSFetchedResultsController:

lazy var fetchedResultsController: NSFetchedResultsController = {
let bunchesFetchRequest = NSFetchRequest(entityName: Constants.CoreData.bunch)
// "name" refers to the bunch name
let primarySortDescriptor = NSSortDescriptor(key: "name", ascending: true, selector: "caseInsensitiveCompare:")
bunchesFetchRequest.sortDescriptors = [primarySortDescriptor]

let frc = NSFetchedResultsController(
fetchRequest: bunchesFetchRequest,
managedObjectContext: CoreDataStackManager.sharedInstance().managedObjectContext!,
sectionNameKeyPath: "name",
cacheName: nil
)
frc.delegate = self
return frc
}()

当我去获取一堆好友的数量时,我总是得到一组没有好友的集合。

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

if let sections = fetchedResultsController.sections {
let currentSection = sections[section] as! NSFetchedResultsSectionInfo
let bunch = currentSection.objects[0] as! Bunch
return bunch.buddies.count // always returns 0
}
return 0
}

我是否需要使用 NSFetchedResultsController 或其他方式来获取计数?如果您可以用核心数据内部结构解释这里发生的情况,那也会很有帮助。谢谢!

最佳答案

您应该使用预取。通过预取,您可以在执行提取时告诉 Core Data 也提取您指定的相关对象。因此,添加这一行,当您获取束时,您告诉 Core Data 预取相关的伙伴。

bunchesFetchRequest.relationshipKeyPathsForPrefetching = ["buddies"]

关于ios - 为什么 NSFetchedResultsController 没有检索到我的多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31789895/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com