2016-03-02 47 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,但轉換爲文件。根本沒有需要的內存。

第三,確保你沒有在某些自動釋放池中不再需要的數據。