Итак, у меня есть подкласс UIView, который начинает вызывать ошибки EXC_BAD_ACCESS, когда я прохожу определенный набор условий (запуск на iPad вместо iPhone или симулятора, только первый вход в систему).Он выдает исключение, когда подкласс UIView автоматически высвобождается из пула (т.е. пул освобождается, а не когда я вызываю [view autorelease], во время последней строки, где у меня есть [super dealloc]. Я слышал об использовании NSZombieEnabled,так что я бросил это, чтобы узнать, смогу ли я получить больше информации об этом, но теперь она полностью скрывает ошибку!
Кто-нибудь знает немного больше об этом типе ситуации? Я думал, что NSZombie начнет извергать вещив мою консоль, как и раньше, но я надеюсь, что отсутствие ошибок сообщит мне также некоторую информацию.
- (void)dealloc
{
[loadingLabel release];
[indicatorView release];
[super dealloc];
}
Редактировать: Хорошо, так что я решил проблему, лежащую в основе:
Одним из моих свойств было:
@property (nonatomic,retain) NSString * title;
Однако код этого свойства выглядит следующим образом (loadingLabel - это UILabel):
- (void)setTitle:(NSString *)title
{
loadingLabel.text = title;
[loadingLabel sizeToFit];
[self setNeedsLayout];
}
- (NSString *)title
{
return loadingLabel.text;
}
Я не знаюна самом деле ничего не сохраняется, а только сделать UILabel.text, который является свойством копирования. Поэтому я изменил собственное свойство title, чтобы отразить это, и ошибка исчезла.
Однако я до сих пор не знаю, как и почему эта ошибка возникла в первую очередь и почему она появляется только на платформе iPad (а не на iphone или даже на симуляторе ipad).