я видел какое-то странное поведение, когда я пытаюсь получить доступ к переменной класса, или свойство в моем методе DrawRect ..Свойство не установлено в методе DrawRect - IOS
В моей .h файле У меня есть следующие
@interface DartBoard : UIView
{
Board * board;
int index;
}
@property (readwrite, assign, nonatomic) NSNumber * selectedIndex;
@end
В моем файле .m я следующее
@implementation DartBoard
@synthesize selectedIndex;
-(id)init
{
self.selectedIndex = [NSNumber numberWithInt:5];
index = 123;
return self;
}
- (void)drawRect:(CGRect)rect {
NSLog(@"selectedIndex: %d",[self.selectedIndex intValue]);
NSLog(@"index: %d",index);
}
@end
выход
2012-06-12 19:48:42.579 App [3690:707] selectedIndex: 0
2012-06-12 19:48:42.580 App [3690:707] index: 0
Я пытался найти решение, но не было удачи ..
Я нашел подобный вопрос, но не было никакого реального ответа на вопрос
См: UIView drawRect; class variables out of scope
У меня есть чувство drawRect отличается от обычных методов и не получает сферу действия класса правильно, но как его исправить?
Приветствия Damien
также NSNumber назначается и не сохраняется, и возможно, что он был autoreleased по времени DrawRect –
Да, это еще одна ошибка: ваша собственность должна использовать '' retain' или copy', а не 'назначить '. Эта ошибка может привести к сбою позже, но это не основная причина проблемы, о которой вы просили. –
Блестяще спасибо большое, ребята ... Проблема была в том, что у меня было 2 экземпляра один в nib, а один в коде, я удалил тот, что был в nib, и все хорошо .. Получил удовольствие от переполнения стека ... –