managedObjectContext は何処へ・・・

Xcode 8 辺りから CoreData の扱いが変わり、model を更新しても自動で改訂がかかるため .h をわざわざいじらなくてもよい、便利だねってのは分かっていたのだが、プログラム側にも変更があったのは知らなかった。

具体的には、managedObjectContext は何処行った?Project を新規生成するときに Use CoreData にチェックを入れると AppDelegate.h に定義が自動で書かれているはずなんだけど、以下の宣言が無くなっている。

@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;

@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;

 

書いてあるのはこれだけ。

@property (readonly, strong) NSPersistentContainer *persistentContainer;

さみしいね・・・

調べてみたら、persistentConteiner.viewContext に置き換わるようです。

コンテナに集約したということでしょうか。便利だから歓迎だけど、ちょっとビックリしたね。