从'NSPersistentStoreResult'转换为不相关的类型'Entity'总是失败

Emp*_*ess 36 core-data swift

我正在创建一个小应用程序来学习CoreData中的多对多关系.但是使用下面的代码我从NSFetchResult到我的Entity类('Groepering')会出现错误:

在此输入图像描述

与我的项目相比,我发现在互联网上找到的样本没有任何差别,为什么演员表仍然失败?

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext

let fetchRequest : NSFetchRequest = NSFetchRequest(entityName: "Entity")

    do {
        let fetchResults = try managedContext.executeRequest(fetchRequest)
        let groeperingen = fetchResults as! [Entity]
        // Here I get the Error: ^

    } catch {
        print("Error")
}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*ale 94

executeFetchRequest执行NSFetchRequest时使用NSManagedObjectContext的方法.

编辑Swift 3:对于Swift 3,使用:

let result = try managedContext.fetch(fetchRequest)
Run Code Online (Sandbox Code Playgroud)

  • 在Swift 3中,此命令已更改为"NSManagedObjectContext.fetch(NSFetchRequest <NSFetchRequestResult>)"[链接到Apple Docs](https://developer.apple.com/reference/coredata/nsmanagedobjectcontext/1506672-fetch) (2认同)
  • 我正在调用`let result = trymanagedContext.execute(fetchRequest)`并花了几个小时来找到错误的方法错别字执行以获取 (2认同)

blw*_*ers 14

我最近将我的代码转换为Swift 3并遇到了同样的错误,尽管不是因为拼写错误.似乎新的等效函数调用是let fetchResults = try managedContext.fetch(fetchRequest).

  • 这在Swift 3中对我有用.还有一个managedObjectContext.execute(request)方法,但是会产生与上面相同的问题. (2认同)