0
次のコードでは、コアデータから結果を取り出してテーブルビューを作成しています。NSNumber = 0の述語
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
}()
述語がないと、tableviewにはすべてのレコードが正しくソートされます。述部を強制するために2つの行のコメントを外しても、結果はまったく返されません。私のデータセットは、wasExported == 1、wasExported == 0の4つのレコードを持っています... wasExportedはブールですが、NSNumberとしてコアデータに格納されています.....どうしましたか?
このケースでは違いはありませんが、実際には%ldでなければなりません。http://stackoverflow.com/questions/37073099/invalid-predicate-nil-rhs-for-second-argument -in-nspredicate-formatです。 –