はじめに
AndroidではRealmを利用したことがありましたが、直近にSwiftでアプリを作ることになり、Relamを使うことになると思うので色々試したいと思います。
今回は、Realmの導入から、簡単なデータの追加・更新までやってみたいと思います。
環境
- XCode:7.3.1
- iOS:9.3
- Swift:2.2
- Realm:1.0.1
導入
CocoaPodsをインストール
CocoaPodsをインストールしていない場合は、以下を参考に導入してみてください
1.gemでインストールする
sudo gem install cocoapods
2.ターミナルを起動しなおしてバージョンを確認する
pod --version
1.0.1
3.setup
pod setup
Setting up CocoaPods master repo
$ /usr/bin/git pull --ff-only
From https://github.com/CocoaPods/Specs
d6fd82b..495e021 master -> origin/master
Updating d6fd82b..495e021
Fast-forward
Specs/MXTouchID/1.0.1/MXTouchID.podspec.json | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 Specs/MXTouchID/1.0.1/MXTouchID.podspec.json
Setup completed
RealmをCocoaPodsでインストールする
1.Realmを利用したいプロジェクトに移動する
cd <project root directory>
ls -la
total 0
drwxr-xr-x 5 kazuhiro staff 170 7 9 16:25 .
drwxr-xr-x 6 kazuhiro staff 204 7 9 16:25 ..
drwxr-xr-x 12 kazuhiro staff 408 7 9 17:15 .git
drwxr-xr-x 7 kazuhiro staff 238 7 9 16:25 RealmSample
drwxr-xr-x 5 kazuhiro staff 170 7 9 16:25 RealmSample.xcodeproj
2.CocoaPodsを初期化しPodFileを作成する。
pod init
3.Podfileを編集する
ブロックを用いることで、ターゲットごとにインストールするpodを切り替えることができます。
必要に応じて記述してください。
vi Profile
<ブロックを利用しない場合>
target '<Project name>'
pod 'Realm'
<ブロックを利用する場合>
target '<Project name>', exclusive: true do
pod 'Realm'
end
target '<TestProject name>', exclusive: true do
pod 'Realm/Headers'
end
4.インストールする
pod install
Analyzing dependencies
Downloading dependencies
Using Realm (1.0.1)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
6.Linked Frameworks and Librariesに以下のライブラリを追加する
- Realm.framework
- RealmSwift.framework
ライブラリを選択して、addボタンで追加する
Realm Xcode Pruginの導入
Xcodeプラグインを使うことでRealmモデルファイルの作成が楽になるので導入しておきましょう
Alcatraz
Alcatrazを導入していない場合は追加してください。
インストール後、xCodeを再起動すると、window>PackageManagerが追加されます
curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
Xcodeを起動し、起動時に「Load Bundles」を選択する。
Pluginを導入する
1.window>Package Manager>Realm と入力する
ReamlBrowser
Realm Browserとは、realm ファイルを閲覧、編集するためのMacアプリです。
RealmPlugin
RealmファイルをFileから作成するためのPluginです。
File>New>でRealmを選択
Relamを使ってみよう
今回は、簡単なデータ追加、削除などを試してみたいと思います。
1.まずはスキーマを作成する
今回は、簡単なユーザー情報を管理するモデルを作成します。
import Foundation
import RealmSwift
class RealmUser: Object {
dynamic var id : Int = 0;
dynamic var nickname = "";
dynamic var age: Int = 0;
}
2.実際にデータを追加してみましょう
import UIKit
import RealmSwift
class ViewController: UIViewController {
let realmDB = RealmUser()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func realmConnect() {
realmDB.id = 1;
realmDB.age = 26;
realmDB.nickname = "kazuhiro";
self.save();
self.find();
}
/**
保存処理
*/
func save() {
do {
let realm = try Realm()
try realm.write {
realm.add(self.realmDB)
}
} catch {
}
}
func find() {
let realm = try! Realm()
let dataContent = realm.objects(RealmUser)
print(dataContent)
}
func dataUpdate() {
do {
let realm = try! Realm()
let data = realm.objects(RealmUser).last!
try realm.write {
data.nickname = "hirokazu"
}
} catch {
}
}
func deleate() {
do {
let realm = try! Realm()
let data = realm.objects(RealmUser).last!
try realm.write {
realm.delete(data)
}
} catch {
}
}
}
参考
https://realm.io/jp/docs/swift/latest/
http://qiita.com/See_Ku/items/6211690df3c56255fde4