0
0

More than 3 years have passed since last update.

[Swift]Realm Swift #1 クラス

Last updated at Posted at 2020-04-22

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)
        }
    }

≫ Realm Swift #2 サンプル

0
0
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
0
0