SlideShare a Scribd company logo
CoreData

               2012/05/31
           Kosuke Matsuda
iOSでSQLiteを利用する

• libsqlite3 (C library)
• Objective-C wrapper (FMDB)
• O/RM (ActiveRecord, MojoDatabase)
• CoreData
• CoreData + 3rd library (MagicalRecord)
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)
CoreDataで利用する
  主なクラス
• NSPersistentStore
  永続ストア、データの保存先(主にSQLite、MacだとXMLとかも)


• NSPersistentStoreCoordinator
  NSPersistentStoreを管理


• NSManagedObjectContext
  データの検索や登録を管理する


• NSManagedObjectModel
  全エンティティ同士の関連を管理する
• NSManagedObject
  Modelオブジェクト。データ(レコード)


• NSEntityDescription
  各エンティティの定義を管理する(テーブル)


• NSFetchRequest
  検索条件を管理する
実際に利用するのは主に以下の4つ


• NSManagedObjectContext
• NSManagedObject
• NSEntityDescription
• NSFetchRequest
CoreDataを
実際に使う
• プロジェクトの作成
プロジェクトを作る時に Use Core Data を
選択する。
Core Data
AppDelegate.{h,m}ファイルに自動生成されるコードを
そのまま利用する。

もし、既存プロジェクトであとからCoreDataを適用
する場合、自分でこのコードを書くのは難しいので
ダミープロジェクトを作ってからコードをコピペし
た方がよい。
• モデルクラスの作成
モデルクラスにattributeの設定
エンティティの設定
Core Data
データの作成
データの検索
NSFetchedResultsController
• CoreDataから取得した結果セットを管
 理する。


• 主にUITableViewまたは
 UITableViewControllerと組み合わせて利
 用する。
まだほとんど試していないので省略
Pros & Cons
Pros
• スキーマ定義などをGUIで行える
• 永続データへの効率的なアクセス
• データストアのバージョン管理。自動
 マイグレート

• モデルオブジェクトの変更管理。アン
 ドゥとリドゥのサポート
Cons

•   規約、ルールが多い
    テーブル名やカラム名に"Z"がつく。メタデータテーブルやカラム
    に"Z_"がつく


•   マイグレートにかなり時間がかかる(らし
    い)
•   検索条件にNSPredicateオブジェクトを使用す
    るので、SQL文に慣れていると把握しづらい

    ただしNSArrayなどでも利用されるので使い方を知っておいても損は
    ない


•   NSFetchedResultsController1つに対して1つの
    エンティティにしか対応していない
補足:MagicalRecord


• MagicalRecord was inspired by the ease of
  Ruby on Rails' Active Record fetching.
                   https://github.com/magicalpanda/MagicalRecord
不要

More Related Content

PDF
CloudStack Day 2015 Storage Teck Talk
PDF
Spiderの最新動向 20130419
PDF
20120913 nosql@hikarie(okuyama fuse)
PDF
Spiderの最新動向 20131009
PDF
Spider DeNA Technology Seminar #2
PDF
Postgresql on kubernetesへの道
PPTX
データベース入門
PDF
Panel Discussion@WebDB forum 2014
CloudStack Day 2015 Storage Teck Talk
Spiderの最新動向 20130419
20120913 nosql@hikarie(okuyama fuse)
Spiderの最新動向 20131009
Spider DeNA Technology Seminar #2
Postgresql on kubernetesへの道
データベース入門
Panel Discussion@WebDB forum 2014

What's hot (20)

PDF
Wicket with Spring Boot on Azure
PPTX
Introducing PostgreSQL on Kubernetes
PDF
Pivotal Greenplumで実現する次世代データ分析基盤のご紹介
PDF
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
PDF
20150520 lt-neo4j勉強会-neofj fdw
PDF
20190410 cnjp rancher-flexvolume
PPTX
Database on Kubernetes - HA,Replication and more -
PDF
Pgunconf neo4j fdw
PDF
Infinispan - Open Source Data Grid rev2
PDF
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
PDF
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
PPTX
PDF
Red Hat Data Grid 8.1 新機能
PDF
分散仮想ストレージシステム紹介
PDF
マイニング探検会#10
PDF
Red Hat Data Grid 8.2 新機能
PPTX
ふりかえり Windows Azure
PPTX
Cache勉強会
PPT
RubyとPost Gis
Wicket with Spring Boot on Azure
Introducing PostgreSQL on Kubernetes
Pivotal Greenplumで実現する次世代データ分析基盤のご紹介
[20190530]yahoo japan+kubernetes meetup "Rook v1.0で試すCSI"
20150520 lt-neo4j勉強会-neofj fdw
20190410 cnjp rancher-flexvolume
Database on Kubernetes - HA,Replication and more -
Pgunconf neo4j fdw
Infinispan - Open Source Data Grid rev2
レッドハット グラスター ストレージ Red Hat Gluster Storage (Japanese)
20190213 Cloud-Native StorageとDatabase on Kubernetesの良い関係
Red Hat Data Grid 8.1 新機能
分散仮想ストレージシステム紹介
マイニング探検会#10
Red Hat Data Grid 8.2 新機能
ふりかえり Windows Azure
Cache勉強会
RubyとPost Gis
Ad

Similar to Core Data (20)

PDF
CoreDataをバックグラウンドで扱うためのTips
PPTX
Effective DBMS (2018)
PDF
20110519 okuyama tokyo_linuxstudy
PDF
20121205 nosql(okuyama fs)セミナー資料
PDF
20110517 okuyama ソーシャルメディアが育てた技術勉強会
PDF
Mongo dbを知ろう devlove関西
PDF
HTML5 Local Storageを利用したメモ帳アプリ
PDF
Java EE7 䛸㻌JCache 
PPTX
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
PPTX
Okuyama説明資料 20120119 ss
PPTX
Cloud os techday_0614
PPTX
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
PDF
経済学のための実践的データ分析 4.SQL ことはじめ
PDF
MySQL Cluster 新機能解説 7.5 and beyond
PDF
OSSとクラウドによるコンピューティングモデルの変化
PDF
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
PPTX
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
Snowflake Architecture and Performance
PDF
Introduction to MongoDB
CoreDataをバックグラウンドで扱うためのTips
Effective DBMS (2018)
20110519 okuyama tokyo_linuxstudy
20121205 nosql(okuyama fs)セミナー資料
20110517 okuyama ソーシャルメディアが育てた技術勉強会
Mongo dbを知ろう devlove関西
HTML5 Local Storageを利用したメモ帳アプリ
Java EE7 䛸㻌JCache 
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Okuyama説明資料 20120119 ss
Cloud os techday_0614
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
経済学のための実践的データ分析 4.SQL ことはじめ
MySQL Cluster 新機能解説 7.5 and beyond
OSSとクラウドによるコンピューティングモデルの変化
もうSQLとNoSQLを選ぶ必要はない!? ~両者を備えたスケールアウトデータベースGridDB~
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
Snowflake Architecture and Performance
Introduction to MongoDB
Ad

More from Kosuke Matsuda (11)

PDF
PDF
Swift 5.1 - Property Wrapper
PDF
Swift 5.1
PDF
Build Time Analyzer
PDF
SafeArea
PDF
URLProtocol
PDF
KEY
Impression of Rails 3
KEY
Rails with mongodb
KEY
Prototypejs
KEY
GAE_20100112
Swift 5.1 - Property Wrapper
Swift 5.1
Build Time Analyzer
SafeArea
URLProtocol
Impression of Rails 3
Rails with mongodb
Prototypejs
GAE_20100112

Core Data

Editor's Notes