iphone - 从 Core Data 获取大数据后 for 循环的风险

标签 iphone ios core-data

我在我的一个应用程序中广泛使用 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/

相关文章:

iphone - MKReverseGeocoder 已弃用

ios - iOS 模拟器上方和下方的黑条

ios - 在不同大小的屏幕上调整 UITextView 中的字体大小

objective-c - 核心数据: How to dynamically change the entity of an object while maintaining common attributes

iphone Xcode 3.1.4 3.1.2 SDK,观察点不起作用?

iphone - IOS内购非消耗品上架后可以修改吗?

ios - 在 Swift 中禁用向后滑动手势

ios - 如何在通讯录联系人中添加工作电话号码?

iphone - 核心数据迁移失败,错误为 : Failed to save new store after first pass of migration

ios - 使用 NSArray 从 iOS 上的可转换核心数据创建对象