Во-первых, у меня есть класс, унаследованный от NSObject
@interface Role : NSObject{ /*...*/ } @end
И есть свойство для хранения указателя момента для Role
класса.
@property (nonatomic, retain) Role * role;
Теперькогда создается UIView
, я инициализирую мгновение класса Role
.
Role * r = [[Role alloc] init];
role = r;
[r release];
Как я понимаю, свойство role
помечено retian
, тогда оно автоматически увеличит ссылкусчитать, когда я устанавливаю значение, и уменьшать счетчик ссылок, когда для свойства устанавливается значение nil при выходе из приложения.
Все выглядит хорошо, но когда я запускаю приложение, я обнаружил, что получу исключение EXC_BAD_ACCESS.
Я добавил NSLog
, и это потому, что момент Role
был released
и dealloced
после UIView
вызова layoutSubviews
, я не могу понять, почему это происходит, потому что Я НЕУ меня есть код для release
в этот момент.
Текущее временное решение для меня: я комментирую строку [r release]
Пожалуйста, кто-нибудь может дать мне какое-то объяснение, если есть какая-то предысторияне знаюr layoutSubviews
?
Спасибо