Ios 在领域中存储对象长列表(1000)的最有效方法是什么?
我试图一次在Realm数据库中存储1000个数据,但在存储这些数据时,我的应用程序UI会被卡住10到15分钟。所以我的问题是,有没有有效的方法在Realm数据库中存储数据?这样用户界面就不会卡住 存储对象的我的代码:aIos 在领域中存储对象长列表(1000)的最有效方法是什么?,ios,swift,realm,Ios,Swift,Realm,我试图一次在Realm数据库中存储1000个数据,但在存储这些数据时,我的应用程序UI会被卡住10到15分钟。所以我的问题是,有没有有效的方法在Realm数据库中存储数据?这样用户界面就不会卡住 存储对象的我的代码:a func addData(object: Item) { try! database.write { database.add(object, update: true)
func addData(object: Item) {
try! database.write {
database.add(object, update: true)
print("Added new object")
}
}
用户界面冻结,因为您是在主线程上执行的,
对于领域,只需一次保存所有列表 (“.modified”来自新领域语法)
用户界面冻结,因为您是在主线程上执行的,
对于领域,只需一次保存所有列表 (“.modified”来自新领域语法)
如果要花10分钟写出1000个对象,那么其他的东西就错了。我们的一个应用程序可以写出近10000行数据,甚至在主线程上也只需几秒钟。您应该包含更多的代码,这样我们就可以了解您在做什么,因为所提供的代码工作正常-即使有10000项。请花点时间回顾一下,我同意还有其他问题。在后台线程上写入时,如果在一个事务中添加100000个adds/creates之类的内容,您会感觉设备挂起几秒钟,但它会工作。如果你将10万条记录拆分,并在每笔交易中写入1000条记录,那么事情会变得更加顺利,你也不会看到设备变得迟钝。如果需要10分钟才能写出1000个对象,那么其他事情就错了。我们的一个应用程序可以写出近10000行数据,甚至在主线程上也只需几秒钟。您应该包含更多的代码,这样我们就可以了解您在做什么,因为所提供的代码工作正常-即使有10000项。请花点时间回顾一下,我同意还有其他问题。在后台线程上写入时,如果在一个事务中添加100000个adds/creates之类的内容,您会感觉设备挂起几秒钟,但它会工作。如果您将100000条记录拆分,并在每个事务中写入1000条记录,事情会变得更加顺利,您不会看到设备变得迟钝。@Nilesh问题中的代码中没有任何东西会冻结主线程。虽然我同意应该在后台线程上编写大量数据,但这个答案中的代码并不能做到这一点。请看一个如何在后台编写一百万条记录的好例子。@Nilesh问题中的代码中没有任何东西会冻结主线程。虽然我同意应该在后台线程上编写大量数据,但这个答案中的代码并不能做到这一点。请看一个关于如何在后台编写一百万条记录的好例子。
try! database.write {
database.add(objects, update: .modified)
}