【iPhoneアプリ開発】図がわかりやすいCore Data Class Overviewを日本語訳したよ!中編の前編(Core Data入門)
前編:【iPhoneアプリ開発】図がわかりやすいCore Data Class Overviewを日本語訳したよ!前編(Core Data入門)
Property(NSPropertyDescription)
PropertyはEntityの性質です。たとえば、AuthorというEntityでいうと、name,email,posts
のようなもののことです。
それぞれのPropertyはSQLiteかXMLからコラムとしてつくられます。
Propertyの名前はManagedObjectsのKVC keysとして使われます。たとえば、このようにemailのPropertyをセットすることができます。
Propertyは選択的に使うことができます。もしユーザーが、必要なPropertyのvalueにたどりつけなければ、アプリケーションはcustomizable errorを
表示します。これはまたコードでManagedObjectをつくったり変えたりするときにも当てはまることを心にとめておいてください。
もしPropertyが一時的な使用にとどまるなら、Core Dataではそれをデータファイルのなかにとどめません。これは意図したvalue、あるいはセッションに特別な情報、に役立ちます。
Propertyのタイプ
Propertyには3種類あります。
Attribute,Relationship,Fetched Property
です。
おそらくほとんどのCore Dataアプリケーションでどれかを使う必要があるでしょう。
Attribute(NSAttributeDescription)
Attributeは基本的なvalue、たとえばNSString,NSNumber,NSDateなどをを持っています。Attributeはデフォルトのvalueを持つことができ、自動的に長さの限界や正規表現を使えるようにすることができます。あなたはほとんどのAttributeのタイプを選ばなければなりません。一時的にAtttributeを"undefined"にすることはでき、これはどんなオブジェクトでもvalueとして使えることを意味します。
Relationship(NSRelationshipDescription)
Relationshipはひとつあるいはそれ以上の特定のオブジェクトとリンクします。対ひとつのrelationshipはひとつのオブジェクトに、一方、対多のrelationshipはたくさんのオブジェクトにリンクします(訳者注:関係性の話では、たとえばひとつのオブジェクトがある場合、それがひとつのオブジェクトにリンクしたものであるのか、あるいはいろんなオブジェクトにリンクしたものであるのかで違いがあります。)
対多のRelationshipでは、オブジェクトの数に上限や下限を設けることができます。
ほとんどの関係は鏡のように逆の関係も持っています。たとえば、PostはそのAuthorに1対1の関係を持っていて、それぞれのAuthorは逆にPost に対多の関係を持っているといった感じです。
Fetched Property(NSFetchedPropertyDescription)
Fetched PropertyはRelationshipに似ていますが、Fetched Propertyから返ってくるオブジェクトはPredicateという探索が基礎となっています。たとえば、AuthorのFetched Propertyは"unpublishedPosts"と呼ばれ、Predicateは"published == 0"としてフォーマットされるかもしれません。
リスト形式のオブジェクトがダイナミックなので、Fetched Propertyに"-setValue:forKey"を使うことはできません。
=============
空いた時間にこうやって息抜きで訳をしているので記事をまとめられなくてごめんなさい。とりあえず訳したものはあげていこうというスタンスです。ご参考になれば幸いです。
ソースもと:http://cocoadevcentral.com/articles/000086.php
======================
当ブログ管理人のツイッターはこちら
◎フォローしてくださると泣いて喜びます!ツイッター上で当ブログの質問などにもできるだけお答えしますし、役に立つiPhoneアプリ開発情報もつぶやきます。個人的なご依頼(たとえば、プログラミングの家庭教師、Skypeレッスンをしてくれないか、iPhoneアプリ開発の勉強会ってやってるの、とかですね)でもかまいません。
■スカイプレッスンについて
開発をしているとその都度ぶつかる問題があると思いますが、検索で調べてもなかなかわからない、あるいは調べても非常に時間がかかる場合があると思います。開発者のみなさんもお忙しいと思いますので、私のレッスンを受けながら開発を進めていただけると、大幅にお時間を短縮できます。加えて、iPhoneアプリ開発の基礎、応用が身につき、今後の開発もスムーズに進められます。
お問い合わせはツイッター、またはhiyoshimarukoアットマークgmail.comまでお願いします。(アットマークを@にしてください)お待ちしております!