在我的应用程序中,我有一个函数来使用NSJSONSerialization创建一个JSONString。在几秒钟内多次调用此函数以生成长JSONString。此NSString导致内存问题,导致应用程序崩溃。
-(NSString *)getJSONString:(NSArray *)arrayWithDictionary{
NSError *error =nil;
NSString *jsonStringToReturn = [[NSString alloc]initWithData:[NSJSONSerialization dataWithJSONObject:arrayWithDictionary options:0 error:&error] encoding:NSUTF8StringEncoding];
return jsonStringToReturn;
}
arrayWithDictionary有很多NSDictionary。我已将代码放在@autoreleasepool中以避免内存问题,但它没有帮助。
答案 0 :(得分:0)
将带有JSON数据的字典转换为字符串需要内存。绕过这个的方法很简单:不要这样做。首先,你没有理由需要一个字符串。将JSON转换为NSData并保持原样。其次,您可以将JSON数据转换为NSData,而不是转换为文件。根本不需要记忆。
第三,确保您在某些自动释放池中不再需要数据。