Мне нужно освободить thechildview, потому что представление увеличивает счетчик хранения.
правый
Неправильно.
Вам необходимо освободить ChildView, если вы им владеете и если вы уже закончили его использовать. Независимо от того, решит ли мнение сохранить его или нет, это совершенно не имеет значения.
Так что, если мы посмотрим на ваш цикл
for(int i=0;i<10;i++){
UIView *child = [UIview alloc]init.....
[parent addSubview:child];
[child release];
}
код верен, потому что в начале блока цикла вы alloc
являетесь дочерним, что означает, что он принадлежит вам, а в конце цикла он собирается выйти из области видимости, что означает, что он вам больше не нужен, поэтому вы должен выпустить (или автоматически выпустить) его.
То, что происходит между ними, совершенно не имеет значения, и вы должны не предполагать что-либо о том, что делает какой-либо конкретный метод с другим объектом (за исключением того, что он соответствует Правилам управления памятью ).
Мне все еще нужно освободить ребенка, верно? Так что это будет означать, что у дочернего представления все еще есть счет сохранения 1, верно?
Вы не можете предполагать что-либо о счете удержания. parent
может привести к тому, что объект будет сохранен более одного раза, если он передаст его другим объектам. Возможно, он решит скопировать его, а не сохранять. Если ему не нужно хранить ссылку, он может вообще не сохранить ее.
Ребята, можете ли вы подтвердить, что я поступаю правильно, освободив ребенка после его добавления?
Нет, вы поступаете правильно, выпуская его по окончании использования.