【发布时间】:2023-04-10 13:17:01
【问题描述】:
我想在我的 Swift3 代码中使用 fetchedResultsController。我尝试了this way 和其他方式,但我做不到。这是我的代码(它不起作用):
var fetchedResultsController: NSFetchedResultsController<Entity> {
let fetchRequest: NSFetchRequest<Entity>
if #available(iOS 10.0, *) {
fetchRequest = Entity.fetchRequest()
} else {
// Fallback on earlier versions
fetchRequest = NSFetchRequest(entityName: "Entity")
}
fetchRequest.fetchBatchSize = 20
let orderDescriptor = NSSortDescriptor(key: "archiveOrder", ascending: true)
let nameDesctiptor = NSSortDescriptor(key: "entityName", ascending: false)
fetchRequest.sortDescriptors = [orderDescriptor, nameDesctiptor]
let aFetchedResultsController: NSFetchedResultsController<Entity> = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: appDelegate.managedObjectContext, sectionNameKeyPath: nil, cacheName: "Master")
aFetchedResultsController.delegate = self
_fetchedResultsController = aFetchedResultsController
do {
try _FetchedResultsController.performFetch()
} catch {
let nserror = error as NSError
print("Unresolved error \(nserror), \(nserror.userInfo)")
}
return _FetchedResultsController!
}
您能给我一些建议或建议吗?
【问题讨论】:
-
我找到了解决方案。我在我的 Entity 类中添加了 @nonobjc public class func fetchRequest() -> NSFetchRequest
{ return NSFetchRequest(entityName: "Entity") } 并且它起作用了。
标签: ios swift core-data swift3