我有一个应用程序,我知道它第一次运行时,CoreData中没有任何东西保存。我试图检查这样的场景:
让fetchRequest = NSFetchRequest(entityName:“Person”)
let error = NSErrorPointer()
do{
let fetchResults = (try! coreDataStack.context.countForFetchRequest(fetchRequest, error: error))
print("Count \(fetchResults)")
} catch let error as NSError{
print("Fetch failed: \(error.localizedDescription)")
}
我收到警告说“从”Int“转换为无关类型'[Person]'总是失败。
我只是不确定我错过了什么。我确定检查CoreData中的任何实体是一种常见的做法。
答案 0 :(得分:3)
您不需要将其转换为[Entity]
,因为countForFetchRequest
会返回计数。所以,你需要在没有施法的情况下打电话。
let fetchResults = coreDataStack.context.countForFetchRequest(fetchRequest, error: error)
print("Count \(fetchResults)")
答案 1 :(得分:0)
我能够使用此代码来使countForFetchRequest正常工作:`let fetchRequest = NSFetchRequest(entityName:“Person”)
var error: NSError?
let count = coreDataStack.context.countForFetchRequest(fetchRequest, error: &error)
if count != NSNotFound {
print("Count \(count)")
} else {
print("Could not fetch \(error), \(error?.userInfo)")
}`