У инструмента утечки памяти инструментов есть проблемы с циклами for? - PullRequest
0 голосов
/ 12 февраля 2010

Запуск моего приложения в симуляторе в разделе «Инструменты» для проверки утечек памяти. Похоже, это указывает на утечку в этом блоке кода:

for (NSDictionary *messageDict in messageDataArray)
{
    message = [[Message alloc] init];
    ... set some properties on the 'message' object

    [messages addObject:message];
    [message release];
}

Очевидно, что в этом цикле я выделяю / инициализирую объект, но освобождаю его, когда заканчиваю с ним. Хотите знать, является ли это просто симптомом того, как Instruments видит активность в этом цикле, или я схожу с ума (или делаю что-то еще совершенно неправильно).

Ответы [ 2 ]

2 голосов
/ 12 февраля 2010

Вы прячете каждое создаваемое вами сообщение в messages ... Вы уверены, что , что не в конечном итоге не просочится (и, следовательно, что в нем есть)? Или, возможно, утечка памяти в инициализаторе или средства доступа к свойствам?

1 голос
/ 13 февраля 2010

Утечки показывают только, где была выделена утечка памяти ...

Подумайте, что означает утечка. Это означает, что где-то у вас должна была быть строка кода, которая что-то выпустила, но у вас нет этой строки кода. Утечки не могут показать вам код, который не существует!

Итак, что означает, что один из объектов сообщения там хранится где-то еще и никогда не отпускает - ИЛИ что весь массив сообщений где-то был утечкой, но тогда это распределение массива также показало бы утечки. 1005 *

...