Core Data
Core Data スタック、NSManagedObject、fetch request、リレーションシップ、マイグレーション、パフォーマンス
1Core Data における NSPersistentContainer とは何ですか?
Core Data における NSPersistentContainer とは何ですか?
回答
NSPersistentContainer は、NSPersistentStoreCoordinator、NSManagedObjectContext、NSPersistentStore を含む Core Data スタック全体をカプセル化します。設定を自動的に管理することで初期化を簡素化し、従来の手動アプローチと比べてボイラープレートコードを削減します。NSPersistentContainer の使用は、Core Data を素早くスレッドセーフに構成するため iOS 10 以降推奨されている方法です。
2NSManagedObjectContext の主な役割は何ですか?
NSManagedObjectContext の主な役割は何ですか?
回答
NSManagedObjectContext は、アプリケーションと永続ストレージ層の間でメモリ内のスクラッチパッドとして機能します。CRUD 操作を管理し、すべての変更を undo/redo で追跡し、persistent store への保存を調整します。コンテキストは特定のキューにバインドされており、スレッド間で共有してはいけません。スレッドセーフな操作には perform() を使用してください。
3NSManagedObject とは何ですか?
NSManagedObject とは何ですか?
回答
NSManagedObject は、Core Data におけるすべての永続オブジェクトの基底クラスです。データモデルで定義されたエンティティの一意のインスタンスを、一意の objectID とともに表します。NSManagedObject は、KVC を介したプロパティ、双方向リレーションシップ、コンテキスト内のオブジェクトの状態(inserted、updated、deleted)を自動的に管理します。NSManagedObject をサブクラス化することで、ビジネスロジックを追加できます。
エンティティを取得するために NSFetchRequest をどのように初期化しますか?
ストレージ層との通信を担当するオブジェクトはどれですか?
+19 面接問題