Я думаю, что, когда я добавляю вид как подвид, как например:CALayer addSublayer увеличивает количество учетных записей?
UIView* view = [[UIView alloc] init];
[self addSubview:view];
[view release];
, что это безопасно выпустить мнение потом ... это то же самое для объекта CALayer? Если я создаю CALayer с помощью/инициализации Alloc, и сделать:
[self.layer addSublayer:layer];
это безопасно, чтобы сделать выделение слоя после этого?
Это похоже на случай. У нас есть собственные пользовательские слои, поэтому мы делаем alloc/init, а не layer, но корректировка наших выпусков, похоже, устраняет наши проблемы. :) – Jonas
Исправление: проблема, которую я видел, заключается в том, что если вы «удалите из суперслоя», тогда объект МОЖЕТ быть уничтожен даже внутри одного и того же блока кода. т. е. если вы затем вызовете «layer.sublayers» второй раз, половина элементов в массиве - это ссылки INVALID, которые приведут к краху вашего приложения. AFAICT это неправильно от Apple - этого не должно произойти до тех пор, пока RunLoop не ударит снова. Я просто попал в эту проблему. Мне было бы интересно увидеть ссылки на некоторые «хорошо документированные» случаи - возможно, вам нужна ошибка в документах? :) – Adam