我已經看到一些奇怪的行爲,當我試圖訪問一個類變量,或者在我的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與普通方法不同,並且沒有正確地獲得類的範圍,但我該如何解決它?
乾杯 達明
也NSNumber的分配,而不是保留,它可能已經通過的drawRect –
時自動釋放是的,這是另一個錯誤:你的財產應該使用'retain'或'copy',不指定' '。那個錯誤以後可能會導致崩潰,但這不是你問到的問題的根源。 –
非常感謝很多傢伙......問題是我在筆尖有兩個實例,一個在代碼中刪除了筆尖中的一個,並且一切都很好......必須愛堆棧溢出...... –