我正在处理通过网络服务接收大量数据(例如 30K 数组中的字典)的应用。 我正在使用JSON工具包来解析大量数据。得到回复后,我会将这些数据存储到plist文件中(因为我想在离线模式下运行应用程序)。
之后我使用NSMutableArray( 30K 字典)访问此数据。现在进一步计算我使用这个数组并使用这个循环 7-8次进行计算以绘制图形。
//path = path from which i access the plist
NSMutableArray *array = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
//where array contains about 30K dictionaries.
for(int i=0; i<[array count]; i++) {
// some calculation formula
}
执行上述循环后,相同的循环被调用7-8次。
由于内存问题,我从plist读取数据后,我的应用程序崩溃了。请帮我解决问题。
答案 0 :(得分:0)
由于您的问题与内存有关,因此您必须尽快释放内存。我假设您在iOS 6.0中使用ARC。尝试在@autoreleasepool中使用循环,看看是否有任何区别。如果需要,您也可以使用嵌套的@autoreleasepool。
for(int i=0; i<[array count]; i++) {
@autoreleasepool {
// calculation formula
}
}
老路;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
for(int i=0; i<[array count]; i++) {
// calculation formula
}
[pool drain];