Menu

Category

Archive

logo


Swiftを使ってMagicalRecordを使用する

2014-10-04 06:00:00 +0900
  • このエントリーをはてなブックマークに追加

Swiftを使っているプロジェクトでMagicalRecordを使用する際のメモ。Swiftを使うと言っていますが、MagicalRecordで永続化するモデルは、Objective-Cとして作成しています。

Bridging-Header.hの作成

まずは、Xcodeのプロジェクトに [プロジェクト名]-Bridging-Header.h というファイルを作成します。

1
2
3
4
5
6
7
8
#ifndef Meemo_Meemo_Bridging_Header_h
#define Meemo_Meemo_Bridging_Header_h

#import "CoreData+MagicalRecord.h" // 追加!
#import "KKMemo.h"     // これはのちのち追加
#import "KKCategory.h" // これはのちのち追加

#endif

とりあえず、最初は CoreData+MagicalRecord.h をインポートします。

xcdatamodeld ファイルの作成

次にモデルを定義していきます。

ファイルの新規作成で、CoreDataを選択し、xcdatamodeldを作成します。

ENTITIESにモデルの名前を、Attributesに各モデルが持つデータ型と属性名を追加。RelationshipsのRelationshipには、小文字で持っているモデル名を、Destinationには、登録したはずのModel名が表示されているはずなので、同じものを選択する。

画像を保存するときは、そのパスを保存しておくため、データ型は、Stringにする。

モデルを選択した状態で、Editor、Create NSManagedObject SubClassを選択。この際、1つ目の画面では、管理する必要があるMemoを選び、2つ目の画面では、この管理したいMemoに関連する全てのエンティティを選ぶ。

最後にBridging-Header.hにもモデルクラスのファイルをインポートしておく。

AppDelegate.swift

AppDelegate.swift の didFinishLaunchingWithOptions に

1
2
// Magical Record Initialization
MagicalRecord.setupCoreDataStackWithAutoMigratingSqliteStoreNamed("Meemo.sqlite”)

このコードを追加する。

保存・読み込み方法

保存の際には、

1
2
3
var photoMemo = KKMemo.MR_createEntity() as KKMemo
photoMemo.name = sample
photoMemo.managedObjectContext.MR_saveToPersistentStoreAndWait()

実際にデータを呼ぶ出すときには、

1
memosObjects = KKMemo.MR_findAll()

参考

http://www.raywenderlich.com/56879/magicalrecord-tutorial-ios
http://bundlr.com/clips/538e569809359743040000c0