我在我的一个应用程序中广泛使用 Core Data。通常,对于 UITableView,我使用 NSFetchedResultsController。但在特定的 View Controller 中,我需要显示一些数据的总和 - 这需要我首先获取数据,然后进行 for 循环来分析数据并进行计算。
但是,我认为,如果我获取大量数据(比方说,10.000 个对象,每个对象包含一个 NSString 和一个 float ),并进行 for 循环,可能会导致我的应用程序崩溃。这是一个严重的风险吗?如果是这样,我该如何解决? (我想过创建一个 NSAutoReleasePool,在计算后添加和释放每个对象,但我使用的是 ARC,所以我认为我不能)。
最佳答案
在这样的循环中使用自动释放池...
@autoreleasepool {
// Insert code in here
}
此外,您应该确保托管对象上下文中的 retainsRegisteredObjects
为 NO。另外,如果你真的开始使用太多,你可以通过使用 refreshObject:mergeChanges:
关于iphone - 从 Core Data 获取大数据后 for 循环的风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11990364/