创建JSONString时出现NSString内存问题

时间:2016-03-02 08:50:15

标签: ios objective-c memory-management memory-leaks

在我的应用程序中,我有一个函数来使用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中以避免内存问题,但它没有帮助。

1 个答案:

答案 0 :(得分:0)

将带有JSON数据的字典转换为字符串需要内存。绕过这个的方法很简单:不要这样做。首先,你没有理由需要一个字符串。将JSON转换为NSData并保持原样。其次,您可以将JSON数据转换为NSData,而不是转换为文件。根本不需要记忆。

第三,确保您在某些自动释放池中不再需要数据。