RubyのハッシュをCoreDataのデータにする

2007年11月26日月曜日
RubyのハッシュをCoreDataのエンティティにする(って言い方で良いのかなあ、要するにデータのひとつにするってことなんですが)方法をいろいろ考えたのですが、結局のところeachでセットしていくしか思いつきませんでした。。。

Bookという名前のエンティティをつくって、isbn, title, author, publisher, pubDateというプロパティを作りました。

一方、AWSからISBNを使ってデータを取り込み、{isbn => "ISBN", title=> "タイトル", author=>"著者名", publisher => "出版社", pubDate => "NSDate形式の出版年"}というハッシュを作成します。それをBookエンティティの一オブジェクトとして挿入。


item_bib = OSX::NSEntityDescription.insertNewObjectForEntityForName_inManagedObjectContext("Book", @managedObjectContext)

bib = Hash.new

#bibにAWSからデータを取り込み処理(外部にrubyのClassを作ってそれで処理しました)

bib.each{|x,y|
item_bib.setValue_forKey(y, x)
}
@managedObjectContext.processPendingChanges


一応できたんですけどね(前に作ったモノの1/10くらいの記述になった)。ハッシュをそのままオブジェクトとして入れるとか出来ないのかなあ。CoreDataのオブジェクトってハッシュみたいな感じだし。

0 コメント:

コメントを投稿