Alamofire、ObjectMapper、および Realm を使用し、フェッチしてマップしたオブジェクトをレルムに保存します。孤立したオブジェクトを自動的に削除することはできますか?
たとえば、連絡先のリストを取得します。これで、1 つの連絡先が応答から削除され、Realm から自動的に削除されるはずです。これはオブジェクトマッパーができることですか?
Alamofire、ObjectMapper、および Realm を使用し、フェッチしてマップしたオブジェクトをレルムに保存します。孤立したオブジェクトを自動的に削除することはできますか?
たとえば、連絡先のリストを取得します。これで、1 つの連絡先が応答から削除され、Realm から自動的に削除されるはずです。これはオブジェクトマッパーができることですか?
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 .