вопросы по поводу памяти памяти на iphone - PullRequest
0 голосов
/ 24 сентября 2010

представьте, что у меня есть главное представление, в котором у меня есть вызов метода "AddSubview", например:

[mainView addsubview:secondView];

... на этом втором представлении у меня есть панель поиска ссоответствующий код для отображения UIkeyboard, введите текст, используйте его в приложении и, наконец, отклоните UIkeyboard.Хорошо.

Когда эта часть программы завершена, я вызываю метод "AddSubview" второй раз, например так:

[secondView removeFromSuperview];
[mainView addsubview:thirdView];

Когда это будет сделано, второе представление исчезнет,и заменяется третьим.Но ... Память, используемая вторым представлением, не освобождается.И, что более важно, память, используемая UIkeyboard (около 800 Ko), не освобождается до тех пор, пока я не выйду из приложения, и остается активной, даже когда я заменяю второе представление третьим представлением.

Итак,Есть ли способ правильно освободить память, используемую UIkeyboard?

(точность: в вышеприведенном коде все 3 UIview разделены на 3 класса, названные ManView, SecondView и ThirdView, что соответствует соответственно 3 UIviewsобъекты в файле NIB. В каждом из этих файлов я поместил метод "dealloc". Но, по-видимому, он никогда не вызывался ...)

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Как вы создаете secondView. При добавлении subView он сохраняется, а при удалении - самостоятельно.

Попробуйте использовать автоматический выпуск при создании secondView.Или Отпустив secondView после удаления из суперпредставления .... проверьте, является ли view нулевым, перед его выпуском.так что, если он был выпущен, приложение не рухнет.

0 голосов
/ 24 сентября 2010

Как указывает KiranThorat, addSubview сохраняет представление, поэтому убедитесь, что вы выпустите его правильно.Убедитесь, что ваши представления освобождают любые подпредставления в методе dealloc и т. Д.

Кроме того, при проверке утечек на симуляторе я обнаружил, что некоторые утечки UIKeyboard нормально.Их нет на устройстве (по крайней мере, в моем случае).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...