【Swift】Realm Databaseの使い方
今回はモバイルアプリのデータ保存やデバイス間データ同期をサポートするRealm Databaseの使用方法をこの記事で説明します。
この記事のポイント・Realmのインストール
・モデルの作成
・Realmのデータ追加、削除、変更
・モデルの作成
・Realmのデータ追加、削除、変更
インストール
Podfileに以下のように設定します。
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'sample' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'SwiftyJSON'
pod 'Alamofire', '~> 4.7'
pod 'RealmSwift' ← ここに追加
# Pods for sample
target 'sampleTests' do
inherit! :search_paths
# Pods for testing
end
target 'sampleUITests' do
# Pods for testing
end
end
設定後、以下のコマンドを実行します。
pod repo update
pod install
pod install
これでRealmライブラリのインストールは完了です。
モデルの作成
以下のようにモデルをクラスとして作成します。
import RealmSwift
class Event: Object {
@objc dynamic var keydate: String = ""
@objc dynamic var name: String = ""
@objc dynamic var screen_name: String = ""
@objc dynamic var birthday: Date!
@objc dynamic var icon: String = ""
@objc dynamic var event: String = ""
}
これでモデルの作成は完了です。
Realmのデータ追加、削除、変更
データ追加
以下のように追加処理を実装します。
private var realm: Realm!
func addEventData(keydate: String) {
try! realm.write {
realm.add(Event(value: ["keydate": keydate]))
}
}
データ削除
以下のように削除処理を実装します。
private var realm: Realm!
private var eventList: Results!
func deleteEventData(at idx: Int) {
try! realm.write {
realm.delete(eventList[idx])
}
}
データ変更
以下のように変更処理を実装します。
private var realm: Realm!
private var eventList: Results!
private var token: NotificationToken!
@IBOutlet weak var tableView: UITableView!
override func awakeFromNib() {
super.awakeFromNib()
// 更新チェック
realm = try! Realm()
eventList = realm.objects(Event.self)
token = eventList.observe { [weak self] _ in
self?.reload()
}
}
func reload() {
tableView.reloadData()
}
これでデータの追加、削除、変更は完了です。