В приборах нет утечек, хотя я уверен, что они существуют - PullRequest
2 голосов
/ 29 июня 2009

Я проверяю утечки в Инструментах, и я настроен проверять каждую секунду, но никаких утечек не появляется.

Я уверен, что в моем приложении должно быть что-то, что может помешать их появлению? Есть ли хороший способ создать утечку, чтобы можно было проверить, обнаруживаются ли утечки в приборах?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Создать утечку легко:

id someObject = [[NSObject alloc] init];
someObject = nil;

Вставьте такой код в свое приложение, и вы обязательно увидите утечку в Инструментах.

1 голос
/ 29 июня 2009

Я уверен, что, как предположил Клемахиу, вы действительно видите чрезмерно удержанные объекты - вы думаете, что освободили их, но они все еще сохраняются.

Одна быстрая проверка работоспособности для этого - установить точки останова в dealloc и посмотреть, действительно ли классы, которые вы ожидаете освободить, являются.

Вы также можете использовать инструмент отслеживания памяти (но не утечки), чтобы увидеть, какая память еще есть - просто убедитесь, что вы выбрали опцию «создан и все еще жив», чтобы проверить, какие объекты все еще существуют.

1 голос
/ 29 июня 2009

Вы найдете утечки с помощью инструмента, только если объект выделен, но на него больше нет ссылок. Другой тип «утечки» - это ссылка на то, что вы не собирались делать. Обычно это происходит с коллекцией, такой как хеш-таблица или словарь, где пары ключ / значение остаются в коллекции, о которой программист забыл.

...