【iPhoneアプリ開発】図がわかりやすいCore Data Class Overviewを日本語訳したよ!中編の中編(Core Data入門)

前回:【iPhoneアプリ開発】図がわかりやすいCore Data Class Overviewを日本語訳したよ!中編の前編(Core Data入門)

ランタイムクラス

ランタイムクラスはセーブ、ロード、取り消しといったアプリケーションの基本的な振る舞いを自動化するためにManaged Object Modelのコンテンツを使います。

Managed Object Contextは最も重要なランタイムクラスで、ほかのものに与えるタスクに責任を持っています。


Managed Object(NSManagedObject)

Managed Objectはデータファイルのレコードを表します。それぞれのManaged ObjectはあるデータのpropertyをくれるEntityを「ホスト」します。

たとえば、"Author object"はそれと結びつくAuthor Entityとともに、単にNSManagedObjectのインスタンスになることができます。そうやって集合したクラスはとても有能なので、それをそのままよく使うことができます。

それぞれのManaged ObjectはManaged Object Contextに「属して」います。それぞれのオブジェクトはuniqueIDを持っていて、それはNSManagedObjectIDのインスタンスによって表現されます。Contextからオブジェクトを取り出すのにManaged Object IDを使うことができます。

Managed Objectsでvalueをgetしたりsetしたりすることは、NSDictionaryのなかでvalueをsetすることに非常に似ています。valueForKey:とsetValue:forKey:を使うだけです。これはCocoaの構造とkey-valueプロトコルに見事にフィットしています。

NSManagedObjectから派生したサブクラスでは可能であればこれらKVCメッセージを使うべきです。

Managed ObjectはContextあるいはRelationshipのなかで実際の命令を持っていません。実は、Core Dataの「ネイティブ」なクラス集合とはNSSetなのです。あなたはNSSortDescriptorをつかってFetch Requestの結果を命令することができますが、ソートしたものはデータストアにはセーブされないのです。


=============
空いた時間にこうやって息抜きで訳をしているので記事をまとめられなくてごめんなさい。とりあえず訳したものはあげていこうというスタンスです。ご参考になれば幸いです。

ソースもと:http://cocoadevcentral.com/articles/000086.php



======================
当ブログ管理人のツイッターこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます

お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!