У меня есть простой способ в моей модели создать объект NSDictionary, содержащий его свойства. К сожалению, этот метод рассматривается как «Анализируемый» для утечки памяти:Ошибка утечки памяти
Потенциальная утечка памяти объекта, выделенного по линии 76 (обозначенная здесь точкой), и хранится в «dic».
-(NSDictionary*) getDictionary {
NSDictionary *dic = [[NSDictionary alloc] init];
[dic setValue:(id)self.internal_code forKey:@"internal_code"];
[dic setValue:(id)self.identifier forKey:@"id"];
[dic setValue:(id)self.owner forKey:@"owner"];
[dic setValue:(id)self.address forKey:@"address"];
[dic setValue:(id)self.displayed_name forKey:@"displayed_name"];
return dic;
}
Я не использую ARC.
PS: Для людей, которые пришли, исходный код, который я опубликовал, был правильным - у него была автореферат. Я отредактировал его после того, как возникнет утечка памяти и спросит, почему именно.
Как этот код может работать? Вы пытаетесь установить значение в NSDictionary. Вы не можете сделать это. – Apurv
Просто несвязанный совет. Вы можете сделать ваш alloc/init/autorelease в просто '[NSDictionary dictionary]'. У многих стандартных классов есть такие конструкторы удобства. –
Также вы говорите, что строка 76 является вашим экземпляром nsdictionary, но я думал, что это было dic.В нем говорится, что утечка хранится в dic, и вы не храните словарь самостоятельно –