在 iOS 10 中,CoreData 团队为 NSManagedObject 添加了一个新的“fetchRequest”方法。它看起来像这样:
public class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult>
据我了解,这允许我们替换它:
let request = NSFetchRequest<MyEntity>(entityName: "MyEntity")
有了这个:
let request = MyEntity.fetchRequest()
但是,当我尝试发出这样的简单请求时:
let request = MyEntity.fetchRequest()
do {
results = try request.execute()
} catch let error {
print("failed to fetch coffee object: \(error)")
}
我收到以下错误:
错误域=NSCocoaErrorDomain 代码=134060 "(null)" UserInfo={message=Cannot fetch without an NSManagedObjectContext in scope}
因此,很明显错误表明我需要将 NSManagedObjectContext 纳入范围。我一直在寻找示例,但似乎可以找到有关如何使用新 API 功能执行请求的完整示例。
问题
使用最新的 Core Data API 功能,我如何发出一个简单的 fetch 请求?根本问题是如何将我的 NSmanagedObjectCotnext 纳入范围。
我应该注意,我能够使用传统语法成功发出请求。