0
我有一個RESTfulAPI我從中檢索一大組數據。我堅持在本地使用它的境界和以下電話:處理領域交易
func addObjectType(object: ObjectType){
// Check for existence of data
if (realm.object(ofType: ObjectType.self, forPrimaryKey: object.id) == nil) {
// Persist your data easily
try! realm.write {
realm.add(object)
}
}
}
該應用程序有一個特點,在本地刪除數據。我已經實現了它作爲以下:
func deleteAllData() {
if(!realm.isEmpty){
do{
if(!realm.isInWriteTransaction) {
realm.beginWrite()
realm.deleteAll()
try! realm.commitWrite()
}
}
NotificationCenter.default.post(name: Notification.Name("updateUI"), object: nil)
}
}
然而,看着領域文檔我看到以下內容:
表示境界當前是否處於寫事務。
警告
不要簡單地檢查這個屬性,然後每當需要創建,更新或刪除對象開始寫事務 。這樣做 可能會導致大量的寫入事務被創建, 會降低性能。相反,在單次交易中,始終更願意執行多個更新 。
我的實施是否正確?
我覺得我缺少一些檢查 ..
完成添加/更新寫入後,您應該始終'commitWrite',不需要檢查'isInWriteTransaction',領域說不需要檢查,因爲它會降低性能 – Tj3n
我應該這樣做,當我添加一個新的通過寫入對象? (請參閱addObjectType的第一個方法) – mm24
如果您使用write關閉,則不需要調用它,但檢查'isInWriteTransaction'在大多數情況下是超級警告,因爲它們具有寫入關閉 – Tj3n