как решить обнаруженные инструментами утечки, ответственной библиотекой которых является фреймворк Apple?

Я проверяю утечки памяти в своих приложениях с помощью инструмента Instruments Leaks.

После устранения всех утечек, ответственной библиотекой которых является мое приложение. Я полагаю, что все еще есть много утечек, ответственными библиотеками которых являются фреймворки iOS, исходя из того, что сказали Instruments?

Это скриншот инструментов:

альтернативный текст

Я думаю, что эти утечки могут быть вызваны некоторыми из моих злоупотреблений методами фреймворков. Каков ваш подход к подобным утечкам?

Спасибо!


person KONG    schedule 12.10.2010    source источник


Ответы (2)


Что ж, разработчики Apple тоже люди, и они тоже могут ошибаться. В качестве альтернативы можно было бы создать собственную структуру, точно такую ​​же, как у Apple, но это будет нехорошо, поскольку в будущем Apple обязательно предложит обновления и исправления, которые решат проблемы.

Единственным решением было бы сообщать об ошибках в Apple об утечках памяти, даже я видел, что фреймворк имеет много утечек памяти.

Существуют и другие причины утечек памяти, инструменты могут показывать утечки памяти в фреймворке Apple, но не обязательно, что это вызвано плохим кодом фреймворка, действительно, это может быть ошибка в нашем коде, когда мы не следовали правильным шагам, например, мы добавляем наблюдателей, но не удаляем их, мы связываемся с событиями, но не удаляем их, поэтому, если мы не выполнили операции очистки правильно, инструменты могут показывать утечку, но где-то еще.

person Akash Kava    schedule 13.10.2010
comment
действительно, это может быть ошибка в нашем коде, когда мы не следовали правильным шагам ‹ - это своего рода неправильное использование, которое я ищу. Спасибо за подсказку, раньше не замечал. - person KONG; 13.10.2010

Я заметил то же самое с одним из своих приложений, и, в конце концов, после попытки выяснить, что я делаю неправильно, я пришел к выводу, что я не делаю ничего плохого, и что в фреймворках Apple также есть утечки памяти.

Так что я не думаю, что вы можете что-то сделать.

person Stelian Iancu    schedule 12.10.2010
comment
Кстати, нехорошо иметь утечки после запуска наших приложений, независимо от того, кто за них отвечает. Как насчет того, чтобы попытаться выяснить, какие методы могут привести к утечкам (например, загрузка nib или что-то в этом роде), а затем заменить их более безопасным подходом. У вас есть опыт в этом? - person KONG; 13.10.2010