NSJSONSerialization を使用する機能があります。200以上のオブジェクトになる可能性があるため、適切なリリース/メモリ管理を行いたいです。
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がまだ存在し、これが機能する場合にのみJSONをリリースしますが(プロファイラーで確認できます)、最後のオブジェクトを解放しようとしたときにのみ、すでになくなっているように見えます。
どうすればこれを修正できますか? このリリース機能が機能するように?