ios - 如何在 NSManagedObjectContext 上正确调用 fetch()?

标签 ios swift core-data nsfetchrequest

我正在学习 CoreData。我一直在经历 this tutorial但是在我的 UIViewController 方法之一中遇到了编译问题。除非我犯了一个明显的错误,这正是本教程中的代码所做的。我正在使用 Xcode 8.2.1。

func getStores() {
    guard let appDelegate =  UIApplication.shared.delegate as? AppDelegate else { return }
    let managedContext = appDelegate.persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Store")

    do {
      // Compilation error on the next line:
      // Cannot convert value of type 'NSFetchRequest<Store>' to expected argument type 'NSFetchRequest<NSFetchRequestResult>
      stores = try managedContext.fetch(fetchRequest)
    } catch  {
      // handle error
    }
  }
}

解决方案:

早些时候,在我的 VC 中,我使用错误的 CoreData 实体声明了 stores 数组。修正该错误即可解决问题。

最佳答案

换行

let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Store")

至:

let fetchRequest: NSFetchRequest<NSFetchRequestResult> = Store.fetchRequest()

或者

let fetchRequest = NSFetchRequest<Store>(entityName: "Store")

关于ios - 如何在 NSManagedObjectContext 上正确调用 fetch()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42700323/

相关文章:

ios - Swift PNG 图像以不正确的方向保存

iphone - 如何在大型中央调度操作中运行异步操作?

ios - 仅比较黑色和灰色的 UIColor 不正确

swift 我怎样才能让列表从顶部开始,没有填充

objective-c - 什么用于核心数据排序?

ios:关闭计算机时,带有 fmdb 的 Sqlite 插入不会保留在模拟器上

swift - TouchesBegan在自定义tableview单元格中取消didselectrowatindexpath函数

xcode - 更新/替换应用程序中的 CoreData sqlite 文件

objective-c - 是否有一个好地方来捕获核心数据属性检索以用空字符串覆盖 nil 字符串?

ios - 如何在淡入淡出 swipeAction 动画完成后重新加载 tableview 数据