MagicalRecordを使ってみたい!- 準備編 -
CoreDataを使っていろいろやってやるぜー!と意気込んだものの、前提だの準備だの使う時の段取りだのがややこしくて脱落気味・・・。
そんな折、「MagicalRecordなるものがあり、とっても便利らしい」という情報を仕入れ(というか教えてもらい)、すかさず試してみました。
これは楽だ!
ということで、忘れないうちにやり方をメモ。
前提:CocoaPodsを使う
よく聞くGitHubですが、使い方も存在も僕からするとなんかややこしそう!それを、これまた簡単にしてくれるものだそうです。これを使ってラクしてみます。
このCocoaPodsについては、こちらを参考にしました。わかりやすい!
開発レシピ:Objective-Cのライブラリ管理ツール CocoaPods | iOS開発者@日本
前提その2:moneneratorを使う
これはMagicalRecordとセットのように登場するもので、Data Modelで設定するモデルに紐づくカスタムクラスを作ってくれる上に、モデルの構造をいじった時も簡単に対応できるらしい。ということで、これも使います。
モノはbrewというのをつかってターミナルからインストールも出来るけど、GUIな僕は迷わずここからpkgをDL&インストール!
ということで、ようやく準備完了。
実際のプロジェクトでMagicalRecordを使う方法です。
Xcodeのプロジェクトを作る
ここはいつも通り。普通にSingle View Application(じゃなくてももちろんいいですけど)を選んで作ります。
続いて、プロジェクトにCore DataのData Modelを追加。以前はプロジェクトを作る時にCoreDataという項目にチェックを入れて作ってた気がしますが、今はこうやるみたい。
作成したData ModelにEntityを追加し、Attributesを設定していきます。ここで重要なのは、右側にあるEntityのClassに関連づけたいカスタムクラスの名前を入れておくこと。CoreDataを自力で実装する場合はEntityを選んだ状態で新しいFileとしてNSManagedObject subclassを作りますが、そういうのをmogeneratorが作ってくれます。
ちなみに、このAttributesに新しい項目を追加したり、Typeを変更したり、名前を変えたりといったことは、後からでも可能です。この後行うコマンドを叩くだけで、何度でも楽勝です。
Podfileをつくる
これは、CocoaPodsを使ってMagicalRecordをインストールするためのファイルです。
platform :iospod ‘MagicalRecord'
MagicalRecordをインストール
$pod install
これによりPodsフォルダ、<プロジェクト名>.xcworkspaceファイルなどが作られます。
Invalid `Podfile` file: /(ファイルを配置した場所)/Podfile:2: unterminated string meets end of file. Updating CocoaPods might fix the issue.
モデルに紐づくカスタムクラスを作成
$ mogenerator -m [YourCoreData].xcdatamodeld/[YourCoreData].xcdatamodel -O CoreData/ --template-var arc=true
-m のところは、Data Modelのある場所。-O の所はこれで作るカスタムクラスの書き出し先です。モデルの変更などを行ったら、これをまた実行すればOKぽい。
_SSCat.h
_SSCat.m
SSCat.h
SSCat.m
MagicRecordを読み込む
#import <availability .h>#ifndef __IPHONE_5_0#endif#ifdef __OBJC__#import <uikit /UIKit.h>#import <foundation /Foundation.h>#define MR_SHORTHAND#import "CoreData+MagicalRecord.h"#endif
#define MR_SHORTHANDというのを、この順番で書いておかないとエラーになります。書くことで、実際に使う際「MR_findAll」でなくて「findAll」みたく「MR_」なしで書くことができます。ググっているといろんな記述方法にヒットしますが、違いはこれっぽげ。
データベースを初期化
[MagicalRecord setupCoreDataStack];
自分でDB名を指定したい場合はこう。
[MagicalRecord setupCoreDataStackWithStoreNamed:@"db.sqlite"];
データベースのクリーンアップ
[MagicalRecord cleanUp];
これは決まり文句っぽげ。
これであとは、実際にデータの読み書きをしていけば良いみたいです。
ここからが簡単になるところなのだけど、長くなったので一旦休憩〜。
詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS7対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2013/11/02
- メディア: 単行本
- この商品を含むブログを見る