読者です 読者をやめる 読者になる 読者になる

yoneapp@iPhoneアプリ開発

標高ワカールやニュースアプリ・スタートアップの支援を行うiOS&Railsエンジニアのブログ

Realmで保存されていないオブジェクトを識別する

Realm Swift iOS

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/