【发布时间】:2016-05-16 20:12:16
【问题描述】:
我有以下代码从核心数据中获取结果以填充表格视图。
private lazy var fetchedResultsController: NSFetchedResultsController = {
// Initialize Fetch Request
let fetchRequest = NSFetchRequest(entityName: "MileageLog")
// Add Sort Descriptors
let dateSort = NSSortDescriptor(key: "logDate", ascending: true)
let mileSort = NSSortDescriptor(key: "mileage", ascending: true)
fetchRequest.sortDescriptors = [dateSort, mileSort]
//// Create a new predicate that filters out any object that
//// have not been exported.
// let predicate = NSPredicate(format: "wasExported == %@", 0)
//// Set the predicate on the fetch request
// fetchRequest.predicate = predicate
let delegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedObjectContext = delegate.managedObjectContext
// Initialize Fetched Results Controller
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
fetchedResultsController.delegate = self
return fetchedResultsController
}()
如果没有谓词,表格视图将填充所有正确排序的记录。取消注释这两行以使谓词生效,根本不会返回任何结果。我的数据集有 4 条记录,wasExported == 1 和 3 条记录,wasExported == 0... wasExported 是一个布尔值,但在核心数据中它存储为 NSNumber .....我做错了什么?
【问题讨论】:
标签: ios core-data nspredicate