getter/setter, CoreDataマイグレーションエラーメモ
本日は Swift ではなく Objective-C です。
というのも、CoreDataの勉強を真面目に始めようと思ったのですが、するならまずはチュートリアルやサンプルが充実しているObjective-Cがよいと思い。 Objective-Cで理解した後、Swift版も作っていきたいと思います。
で、iOS CoreDataチュートリアル(下記)をしていたのですが、CoreData以前に知らないことが多数。。 今回はその時のメモです(CoreDataのことは別の機会に書こうと思うので、今回のは完全に個人用メモです。。)
https://developer.apple.com/jp/devcenter/ios/library/documentation/iPhoneCoreData01.pdf
getter/setter
@synthesize と言った文(コンパイラディレクティブ)がよく分からなかったのですが、@propertyと合わせてgetter/setterが利用できるようになるようです。詳しい説明はこちら!
Objective-Cの @property と @synthesize の組み合わせが何をやっているのかを解説 - 強火で進め
CoreData のマイグレーションエラー
CoreDataを利用する上で、エンティティを少しでも変更するとアプリ起動時にエラーが発生してしまいます。
Unresolved error Error Domain=NSCocoaErrorDomain Code=134100 "The operation couldn’t be completed. (Cocoa error 134100.)" ・・・ The model used to open the store is incompatible with the one used to create the store"
ちゃんとマイグレーション処理をしなさい!とのことみたいです。
正統派な対処はまだ良くわかりませんが、とりあえずサンプルでCoreDataこちょこちょいじってるレベルで、今までのデータ全部消えてもよければ、下記のサイトにあるようにファイルを消してしまうのが手っ取り早いです。
こちらは実際に試してちゃんと起動できるようになりました。