0
我想在touchesBegan方法中創建一個名爲theImageView的UIImageView,然後我可以移動到touchesMoved中的新位置。目前,我在touchesMoved中收到「未聲明」的錯誤,其中我設置了theImageView的新位置。在內存中保留對象(iPhone SDK)
我該怎麼做才能保持theImageView這兩種方法之間的內存?
編輯:我無法申報theImageView在@interface,因爲我需要創建一個圖像的每一個特定點被觸摸的時間。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
...
UIImageView *theImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
theImageView.frame = CGRectMake(263, 228, 193, 300);
[theImageView retain];
...
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
...
theImageView.frame = CGRectMake(300, 300, 193, 300);
...
}
謝謝你的回答。我很抱歉,但我的意思是說,我無法這樣做,因爲我試圖創建一個新的UIImageView對象每次觸摸屏幕的預定區域。這意味着我需要動態創建這些對象,因此我無法在@interface中聲明它們。有沒有其他的方式來解決這個問題?再次感謝你的幫助。 – Chris 2010-05-21 05:38:07
@Chris:我不明白爲什麼你認爲你無法做到這一點。您可以重新分配實例變量以指向新的對象。 – Chuck 2010-05-21 05:49:36
或者有一個實例變量來存放放置UIImageViews的NSMutableArray。 – 2010-05-21 06:38:35