2

Alamofire、ObjectMapper、および Realm を使用し、フェッチしてマップしたオブジェクトをレルムに保存します。孤立したオブジェクトを自動的に削除することはできますか?

たとえば、連絡先のリストを取得します。これで、1 つの連絡先が応答から削除され、Realm から自動的に削除されるはずです。これはオブジェクトマッパーができることですか?

4

1 に答える 1

5

Realm または ObjectMapper を使用して「自動的に」行う方法はわかりませんが、Realm データに対して Set.Subtract() 操作を実行することで、基本的に孤立したオブジェクトを削除できます。Hashableただし、これはRealm クラスのプロトコルに準拠する必要があることも意味します。

を実装するHashableと、次のようなことができます。

var contacts = try! Realm().objects(Contacts)

let realmSet = Set<Contacts>(self.contacts)
let incomingSet = Set<Contacts>(incomingContacts)
let contactsToDeleteSet = realmSet.subtract(incomingSet)
for contact in contactsToDeleteSet {
    try! realm.write {
        realm.delete(contact)
    }
}

ここですべての素晴らしい Set 操作を確認できます: Performing Set Operations .

于 2015-11-18T00:54:04.480 に答える