iOS でRealm Swift
を 調査し、クラスを作成してみました。
目次
・Realm Swift #1 クラス
・ Realm Swift #2 サンプル
・ Realm Swift #3 トラブル対応
Realm Swift
プロパティの定義
① dynamic
キーワードと@objc
・dynamic
キーワードを使いたい場合、明示的につける
・理由:内部で Objective-C で書かれた専用のアクセスメソッドに置き換えられるため
※参照資料
https://realm.io/docs/swift/3.20.0/
https://github.com/realm/realm-cocoa
RealmSwift-introduction
動作環境
- Swift 5.0
- Xcode 11.1
- Carthage
- github "realm/realm-cocoa" == 3.20.0
クラス
* Source: RealmBaseDao.swift
RealmBaseDao.swift
import RealmSwift
class RealmBaseDao <T: RealmSwift.Object>
###レコードの追加
RealmBaseDao.swift
/**
レコードの追加
- parameter : T
*/
func add(obj :T) throws {
try realm.write {
realm.add(obj)
}
}
###レコードの更新
RealmBaseDao.swift
/**
レコードの更新
条件: primaryKey()が実装されている時のみ有効
- parameter : T
- parameter : (() -> Void)?
*/
func update(obj: T, block:(() -> Void)? = nil) throws {
try realm.write {
block?()
realm.add(obj, update: .modified)
}
}
###レコードの削除
RealmBaseDao.swift
/**
* レコードの削除
*/
func delete(obj: T) throws {
try realm.write {
realm.delete(obj)
}
}