我正在开发一个应用程序,通过web服务接收大量数据(例如,数组中的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读取数据后,我的应用程序崩溃了。请帮我解决这个问题。
发布于 2012-10-12 15:43:02
由于您的问题是内存相关,您必须尽快释放内存。我假设您使用的是iOS 6.0。尝试使用@autoRelase池中的循环,看看这是否有任何区别。如果需要,还可以使用嵌套的@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];
https://stackoverflow.com/questions/12862334
复制相似问题