#iphone #objective-c #cocoa-touch #ios
#iPhone #objective-c #cocoa-touch #iOS
Вопрос:
Я использую UIActivityIndicator в accessoryView ячейки таблицы. На самом деле это подвиде anotherView (который является accessoryView ячейки), как показано ниже:
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[anotherView addSubview:activityIndicator];
[activityIndicator startAnimating];
[activityIndicator release];
cell.accessoryView = anotherView;
В моем случае использования мне больше не нужно получать доступ к представлению индикатора. Также, если полное представление будет удалено (из-за отклонения ViewController), меня не волнуют эти UIActivityIndicators.
Итак, будет ли этот тип использования безопасным и не создаст никаких остатков памяти / ресурсов? Я проверил, что вызывается dealloc
of UIActivityIndicatorView
(и это так), поэтому я бы предположил, что анимация также будет остановлена / удалена автоматически, пока иерархия представлений будет уничтожена.
Верно ли мое предположение?
Ответ №1:
Да, как только вы отказались от владения индикатором, иерархия представлений остается единственным владельцем. Если супервизор удален из иерархии представлений и если он не сохранен в другом месте, супервизор освобождает все свои подвиды. Если количество сохраненных вложенных просмотров равно нулю, они освобождаются. Это то, что происходит с вашим представлением индикатора.