2012年12月20日木曜日

CoreDataとsqlite

 。.:+:・'☆'゚ヽ(●‘∀‘)ノ・'.::+ハロー♪゚+'゚☆

iOSでsqliteを使う際、普段は自前のO/Rマッパーを使っているのですが、手続きが結構面倒なので(モデルクラスやコントローラークラスの自動生成機能があればいいんですけどね (´・ω・`))、
巷で使いづらいと噂のCoreDataに手を出してみることにしました! (`・ω・´) シャキーン






。。。 フムフム…φ(@Д@━)(勉強中)







こ、これは!!











OK、もう二度と使わない(ぉぃ

とまでは言わないですが標準のままでは確かに使いにくいですねぇ。。

マイグレーションに時間がかかるのが一番のネックな気がしますね。
ゲームアプリに使っちゃうとえらいことになりそうです。
ディスクにクエリ結果をキャッシュするのでクエリ自体はものっそ速いんですが。

そしてUIのコードと完全に分離出来るのはありがたいですが、
必要なクラスが無駄に多いので地味に戸惑います。

あとはこのテのフレームワークでありがちな実際のSQLとプログラムコードの解離性が気になります。
複雑なクエリを作りたい時に必ずハマりそうな気がするので。
(ちゃんと正規化しろって話ですけどね!)


まぁケースバイケースですねー。
ユーティリティのような小さいアプリ(データ量)でかつ
頻繁に参照、更新を行うようなものには非常に向いていると思います。

ちなみに生成されるSQLを出力したい時は
Argumentに
-com.apple.CoreData.SQLDebug 1
を追加しておけば出力されます。
(stmt状態なので、バインド変数は自前でログ出力して下さいませ)

ラップしたライブラリも多々存在しますので
その内試してみようと思います .:゚+(o・`ω・)

0 件のコメント:

コメントを投稿