LoginSignup
53
49

More than 5 years have passed since last update.

【SugarRecord】Swiftで簡単にCoreData操作!

Last updated at Posted at 2015-04-29

Slogan.png

SugarRecord/SugarRecord
SwiftでCoreDataを操作できるライブラリです。
Objective-CのMagicalRecordのようなものになっています。

環境

Xcode6.3
swift1.2
SugarRecord1.0.7

セットアップ手順

Project作成

Project作成時に、
下記のように「Use Core Data」にチェックを入れます。

スクリーンショット_2015-04-29_午後3_42_23.png

インストール方法

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名を付ける。

AppDelegate.swift
let stack: DefaultCDStack = DefaultCDStack(databaseName: "Database.sqlite", automigrating: true)
SugarRecord.addStack(stack)

Entity作成

Entity追加

「Add Entity」からEntityを追加。

スクリーンショット_2015-04-29_午後3_48_24.png

カラムの作成

Attributesから追加したいカラムを追加。

スクリーンショット_2015-04-29_午後3_49_04.png

Modelのクラスを作成

[Editor]->[Create NSManagedObject Subclass...]からクラスを追加。

スクリーンショット 2015-04-29 午後3.49.09.png

順番にNextを押して進んでいき、
下記の画面で、Groupにプロジェクト名のフォルダを指定して保存します。

スクリーンショット_2015-04-29_午後3_49_27.png

下記のような[Entity名].swiftのファイルが作成される。

スクリーンショット 2015-04-29 午後4.29.59.png

次に、「プロジェクト名.xcdatamodeld」内
[Configurations]の「Class」の名前を変更する。

「PRODUCT_MODULE_NAME.[Entity名]」
「プロジェクト名」.[Entity名]」

スクリーンショット_2015-04-29_午後3_51_30.png

データ操作方法

保存

Userにage=24name="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()

最後に

導入方法から基本的な機能まで紹介しましたが、
そのほかにも詳しい検索などいろいろな機能があります。

詳しくは下記を御覧ください。

SugarRecord/SugarRecord

53
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
49