こんにちは。検索サービス開発4チームでメッセージアプリのLINEのiPhoneアプリ開発を 担当している金泰敬(キム テギョン)です。 今回説明させて頂きたい主題はLINEのモデル側を支えているCore Dataです。 Core Dataは、MacOS XのベースFrameworkであるCocoaのMVC構造のうち、 Model側を担当しているFrameworkです。 Core Dataを利用するとデータモデルの設計、オブジェクトのデータの読み取り、書き込み、管理などを簡単に行うことができます。 現在、LINEではCore Dataを利用してメッセージ、トーク、グループ、ユーザーなどを管理しています。 例えば、相手のメッセージが到着するとまずコアのデータからSqliteDBに格納します。 そして保存されたメッセージに関連しているトークでも更新が行われます。 もしそのメッセージが
Core Data のパフォーマンスを良くするためのテクニックはいくつか存在するが、その中でも重要だと思われるバイナリデータの扱いについて記載されている書籍を見つけたので参考までにまとめておく。 Core Data: Apple’s API for Persisting Data on Mac OS X (リンク Amazon) の6章に分かりやすい解説があった。ただし、この本は主にOSX用に書かれたものなので、目安となるバイト数はiPhoneOSでは少し変わってくるかもしれない。それでも三通りの方法を使い分けるべきだという基本概念は十分iPhoneOSにも流用できるし、各方法がどのようにパフォーマンスに効いてくるかという理論的な部分は是非理解しておきたいところ。 バイナリデータの管理方法 例えば、レシピアプリの各レシピに画像を保存し、レシピ一覧でその画像を表示することを考える。もし、画像
NSURLConnection を使って非同期でサーバ接続させて -connectionDidFinishLoading: が呼ばれたら後処理をする、、、ってセオリー通りな処理を書いたつもりなんだけど、CoreData で保存するとエラーが発生する。 毎回同じデータに対して発生するんなら、実装エラーだろーけど、成功したり失敗したりする。スレッドの実行タイミングが絡んでるよ。orz 実行してる処理はこんな感じ NSManagedObjectContext *context = ... File *file = … // try to find NSManagedObject, if not, create new object. file.outOfSync = [NSNumber numberWithBool:NO]; // ファイル保存 NSError *error; error = n
In software engineering, the active record pattern is a design pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his book Patterns of Enterprise Application Architecture. The interface to such an object would include functions such as Insert, Update, and Delete, plus properties that correspond more-or-less directly to the columns in the underl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く