2
私はrealmにいくつかのチャットデータを保存しました。そこでは、パフォーマンステストのために> 40k個のオブジェクトを追加しました。クエリは高速ですが、削除には時間がかかりすぎてUIがフリーズします。多くのオブジェクトを削除するRealm.ioが長すぎます
static func deleteMessagesForChatId(chatId: String) {
dispatch_async(dispatch_queue_create("background", nil)) {
let realm = try! Realm()
let realmChatMessages = realm.objects(RealmChatMessage).filter("chatId = '\(chatId)'")
try! realm.write {
realm.delete(realmChatMessages)
print("message deleted from realm")
}
}
}
ありがとうございますが、違いは何ですか? – MJQZ1347
これは、リストを反復処理し、トランザクション内で一度に1つのオブジェクトを削除するのに対して、すべての削除に対して1つのトランザクションを作成します。 – John
トランザクションは、バックグラウンドスレッドで実行することを意味しますか?だから私はそれが自分で動くと宣言していないのですか? – MJQZ1347