2016-03-02 30 views
0

在我的应用程序中,我有一个使用NSJSONSerialization创建JSONString的函数。该函数在几秒钟内被多次调用以生成长JSONString。这NSString导致内存问题,导致应用程序崩溃。创建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

什么样的“内存问题”? – trojanfoe

+0

在“分配工具”中,显示字符串已使用最多600 MB内存。 – RamGrg

+0

您需要展示如何使用该方法,因为它本身没有任何问题。 – trojanfoe

回答

0

将带有JSON数据的字典转换为字符串需要内存。解决这个问题的方法很简单:不要这样做。首先,你没有理由需要一个字符串。将JSON转换为NSData并将其保留。其次,您可以将JSON数据转换为NSData,但转换为文件。根本没有需要的内存。

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