我有一個函數,我使用NSJSONSerialization。我想做一個很好的釋放/內存管理,因爲它可以是200多個對象。- [CFDictionary發佈]:發送到釋放實例的消息0x26a13ca0
for (NSDictionary *dict in visitsAndQuestionnaires) {
NSInputStream *is = [[NSInputStream alloc] initWithFileAtPath:filePath];
[is open];
if (is) {
JSON = [NSJSONSerialization JSONObjectWithStream:is options:0 error:nil];
if (![JSON respondsToSelector:@selector(objectForKey:)]) {
JSON = nil;
}
[is close];
}
[is release];
if (JSON) {
// HERE MY FUNCTION TO CREATE A LAYOUT BASED ON JSON
}
// WHEN FUNCTION WITH JSON IS DONE:
if (JSON) {
//JSON = NIL;
[(id)JSON release];
}
}
比功能做它功能219個對象只能在對象219的應用程序崩潰與此控制檯日誌:
-[CFDictionary release]: message sent to deallocated instance 0x26a13ca0
即使我只是在釋放JSON時,它仍然存在,這工作(我可以在profiler中看到它),只有當它試圖釋放最後一個對象時它看起來已經消失了。
我該如何解決這個問題?這樣這個發佈函數起作用了嗎?
評論// [是發佈];然後運行它。 –
也不行.. – user983511
也對[(id)JSON發佈]發表評論; –