Core Data

  • 1,192 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,192
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. CoreData 2012/05/31 Kosuke Matsuda
  • 2. iOSでSQLiteを利用する• libsqlite3 (C library)• Objective-C wrapper (FMDB)• O/RM (ActiveRecord, MojoDatabase)• CoreData• CoreData + 3rd library (MagicalRecord)
  • 3. CoreDataとは• Core Data はモデルオブジェクトを永続 化するためのフレームワークです。 サルでもわかる Core Data 入門【概念編】(http://d.hatena.ne.jp/glass-_-onion/20111015/1318667971)• Core Dataはメモリ上のオブジェクトグ ラフを操作するためのもの Core Dataと(R)DBMSとは何が違うか?(http://macisv.jp/blog/?p=264)
  • 4. CoreDataで利用する 主なクラス
  • 5. • NSPersistentStore 永続ストア、データの保存先(主にSQLite、MacだとXMLとかも)• NSPersistentStoreCoordinator NSPersistentStoreを管理• NSManagedObjectContext データの検索や登録を管理する• NSManagedObjectModel 全エンティティ同士の関連を管理する
  • 6. • NSManagedObject Modelオブジェクト。データ(レコード)• NSEntityDescription 各エンティティの定義を管理する(テーブル)• NSFetchRequest 検索条件を管理する
  • 7. 実際に利用するのは主に以下の4つ• NSManagedObjectContext• NSManagedObject• NSEntityDescription• NSFetchRequest
  • 8. CoreDataを実際に使う
  • 9. • プロジェクトの作成プロジェクトを作る時に Use Core Data を選択する。
  • 10. AppDelegate.{h,m}ファイルに自動生成されるコードをそのまま利用する。もし、既存プロジェクトであとからCoreDataを適用する場合、自分でこのコードを書くのは難しいのでダミープロジェクトを作ってからコードをコピペした方がよい。
  • 11. • モデルクラスの作成
  • 12. モデルクラスにattributeの設定
  • 13. エンティティの設定
  • 14. データの作成
  • 15. データの検索
  • 16. NSFetchedResultsController
  • 17. • CoreDataから取得した結果セットを管 理する。• 主にUITableViewまたは UITableViewControllerと組み合わせて利 用する。
  • 18. まだほとんど試していないので省略
  • 19. Pros & Cons
  • 20. Pros• スキーマ定義などをGUIで行える• 永続データへの効率的なアクセス• データストアのバージョン管理。自動 マイグレート• モデルオブジェクトの変更管理。アン ドゥとリドゥのサポート
  • 21. Cons• 規約、ルールが多い テーブル名やカラム名に"Z"がつく。メタデータテーブルやカラム に"Z_"がつく• マイグレートにかなり時間がかかる(らし い)
  • 22. • 検索条件にNSPredicateオブジェクトを使用す るので、SQL文に慣れていると把握しづらい ただしNSArrayなどでも利用されるので使い方を知っておいても損は ない• NSFetchedResultsController1つに対して1つの エンティティにしか対応していない
  • 23. 補足:MagicalRecord• MagicalRecord was inspired by the ease of Ruby on Rails Active Record fetching. https://github.com/magicalpanda/MagicalRecord
  • 24. 不要