2010-10-12 8 views
6

Sprawdzam wycieki pamięci w moich aplikacjach przy użyciu narzędzia Wycieki instrumentów.jak rozwiązać Instruments wykryto wycieki, których odpowiedzialną biblioteką jest framework Apple'a?

Po naprawieniu wszystkich wycieków, których odpowiedzialną biblioteką jest moja aplikacja. Rozumiem, że nadal istnieje wiele nieszczelności, których odpowiedzialne biblioteki są framworks iOS, w oparciu o to, co powiedział Instruments?

To screenshot z intruments:

alt text

Myślę, że te przecieki mogą być spowodowane przez niektóre z moich nadużycia metod ram. Jakie jest Twoje podejście do takich wycieków?

Dzięki!

Odpowiedz

2

Cóż Deweloperzy Apple również są ludźmi, a także mogą popełniać błędy. Alternatywą byłoby stworzenie własnej struktury dokładnie takiej samej, jak w Apple, ale to nie będzie miłe, ponieważ Apple na pewno wymyśli uaktualnienia i poprawki w przyszłości, które rozwiążą problemy.

Jedynym rozwiązaniem byłoby zgłoszenie błędów Apple na temat wycieków pamięci, nawet widziałem, że ta struktura ma wiele wycieków pamięci.

Istnieją również inne przyczyny wycieków pamięci, instrumenty mogą pokazywać wycieki pamięci w strukturze Apple, ale nie jest to konieczne, ponieważ jest spowodowane złym kodem frameworka, może to być błąd w naszym kodzie, gdzie nie podążaj za prawidłowymi krokami, na przykład dodamy obserwatorów, ale ich nie usuwamy, wiążemy dla zdarzeń, ale ich nie usuwamy, więc jeśli nie wykonaliśmy poprawnie operacji czyszczenia, instrumenty mogą pokazać wyciek, ale gdzie indziej.

+0

"rzeczywiście może to być błąd w naszym kodzie, w którym nie postępowaliśmy zgodnie z prawidłowymi krokami" <- jest to rodzaj niewłaściwego użycia, którego szukam. Dzięki za sugestię, nie zauważyłem ich wcześniej. – KONG

0

Zauważyłem to samo z jedną z moich aplikacji iw końcu, po próbie odkrycia, co robię źle, doszedłem do wniosku, że nie robię nic złego i że frameworki Apple mają wycieki pamięci także.

Więc nie sądzę, że jest coś, co możesz zrobić.

+1

BTW, nie jest dobrze mieć przecieki po uruchomieniu naszych aplikacji, bez względu na to, kto jest za nie odpowiedzialny. Co powiesz na próbę odkrycia, jakie metody prawdopodobnie wprowadzają wycieki (jak np. Ładowanie końcówki lub czegoś takiego), a następnie zastępują je bezpieczniejszym podejściem. Czy masz jakieś doświadczenie na ten temat? – KONG

Powiązane problemy