Realmで保存されていないオブジェクトを識別する
Realmで、例えば以下の様なfindOrInitializeByを実装した場合に保存済みなのか知りたくなるケースが有ります。
static func findOrInitializeBy(id: Int) -> Article { if let article = Realm().objectForPrimaryKey(Article.self, key: id) { return article } else { return Article(value: ["id": id]) } }
その場合に、realmでは保存していないとobject自身のrealm参照がnilになるのを参考にすれば良いようです。 以下の様なextensionを設定してもよいでしょう。
import Foundation import RealmSwift extension Object { var isPersisted: Bool { get { return realm != nil } } }
以上は、Realmのユーザーサポートで質問して回答頂いた内容をまとめたものになります。
※ ログインが必要です。下記URLよりアカウント作成を行ってから開いてください。
https://realm-public.slack.com/archives/general/p1439209163000803
ユーザーサポートは、日本語で誰でもサポートして頂けるようです。
http://slack.realm.io/
https://www.facebook.com/groups/realmjp/