当您知道没有保存实体时,如何处理CoreData中的获取请求

时间:2015-12-28 06:34:56

标签: ios swift core-data swift2 nsfetchrequest

我有一个应用程序,我知道它第一次运行时,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中的任何实体是一种常见的做法。

2 个答案:

答案 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)")
    }`