SugarRecord/SugarRecord
SwiftでCoreDataを操作できるライブラリです。
Objective-CのMagicalRecordのようなものになっています。
環境
Xcode6.3
swift1.2
SugarRecord1.0.7
セットアップ手順
Project作成
Project作成時に、
下記のように「Use Core Data」にチェックを入れます。
インストール方法
CocoaPodでインストールします。
Podfileに下記を追記
pod 'SugarRecord/CoreData', :git => 'https://github.com/SugarRecord/SugarRecord.git'
use_frameworks!
pod install
Import
利用するファイルでimportします。
import SugarRecord
SugarRecord初期化
AppDelegateで下記を追記。
"Database.sqlite"
部分は任意のDB名を付ける。
let stack: DefaultCDStack = DefaultCDStack(databaseName: "Database.sqlite", automigrating: true)
SugarRecord.addStack(stack)
Entity作成
Entity追加
「Add Entity」からEntityを追加。
カラムの作成
Attributesから追加したいカラムを追加。
Modelのクラスを作成
[Editor]->[Create NSManagedObject Subclass...]からクラスを追加。
順番にNextを押して進んでいき、
下記の画面で、Groupにプロジェクト名のフォルダを指定して保存します。
下記のような[Entity名].swiftのファイルが作成される。
次に、「プロジェクト名.xcdatamodeld」内
[Configurations]の「Class」の名前を変更する。
「PRODUCT_MODULE_NAME.[Entity名]」
「プロジェクト名」.[Entity名]」
データ操作方法
保存
Userにage=24
、name="Hirai"
のレコードを保存
var user: User = User.create() as! User
user.age = 24
user.name = "Hirai"
let saved: Bool = user.save()
検索
name="Hirai"
のレコードを検索
let user: User = User.by("name", equalTo: "Hirai").find().firstObject() as? User
println(user)
data: {
age = 24;
name = Hirai;
})
更新
データの変更、削除にはTransactionを使用します。
user.beginWriting()
user.endWriting()
var user: User = User.by("name", equalTo: "Hirai").find().firstObject() as? User
user.beginWriting()
user.name = "Araki"
user.age = 22
user.endWriting()
let saved: Bool = user.save()
削除
削除は
①分けて書く
②繋げて書く
の2つの書き方があります。
// パターン①
user.beginWriting()
user.delete()
user.endWriting()
// パターン②
user.beginWriting().delete().endWriting()
最後に
導入方法から基本的な機能まで紹介しましたが、
そのほかにも詳しい検索などいろいろな機能があります。
詳しくは下記を御覧ください。