めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

CoreDataのxcdatamodeldと、xcdatamodel

Objective-CでCoreDataを使ってみていました。
あれこれ試しつつ、ボンヤリとですが、見えてきたように思います。

テンプレート

新規プロジェクトを始める時に、テンプレートで「CoreData」を使うにチェックすることで、CoreDataは使えます。でも、後で付け加えたい時もあって、そんな方法はないかと、色々とあれこれしていました。やってみると、かなり手惑います。

拡張子

特にCoreaDataのファイルの拡張子「.xcdatamodeld」と「.xcdatamodel」は戸惑いました。

  • 「.xcdatamodel」だとwithExtensionが「mom」
  • 「.xcdatamodeld」だとwithExtensionが「momd」

withExtensionというのは、どうやらPDFファイル、jpegファイルなどを保存しておくところらしいのですが...まだまだ分からず

- (NSManagedObjectModel *)managedObjectModel {
    if (managedObjectModel_ != nil) {
        return managedObjectModel_;
    }

    NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Example" withExtension:@"mom"];
    managedObjectModel_ = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
    return managedObjectModel_;
}