iOS 10 では、CoreData チームが新しい「fetchRequest」メソッドを NSManagedObject に追加しました。次のようになります。
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)")
}
次のエラーが表示されます。
エラー Domain=NSCocoaErrorDomain Code=134060 "(null)" UserInfo={message=スコープ内に NSManagedObjectContext がないとフェッチできません}
したがって、明らかにエラーは、NSManagedObjectContext をスコープに入れる必要があることを示しています。例を探していましたが、新しい API 機能を使用してリクエストを実行する方法の完全な例を見つけることができます。
質問
最新の Core Data API 機能を使用して、簡単なフェッチ リクエストを作成するにはどうすればよいですか? 根本的な問題は、NSmanagedObjectCotnext をスコープに入れる方法です。
従来の構文を使用してリクエストを正常に作成できることに注意してください。