我正在尝试在touchesBegan方法中创建一个名为 theImageView 的UIImageView,然后我可以移动到touchesMoved中的新位置。目前我在touchesMoved中收到“未声明”错误,我为 theImageView 设置了新位置。
如何在这两种方法之间将 theImageView 保留在内存中?
编辑:我无法在@interface中声明 theImageView ,因为我需要在每次触摸某个点时创建图像。
- (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);
...
}
答案 0 :(得分:6)
您已在方法/函数中声明了变量,这使其成为局部变量(即,仅存在于该函数内的变量)。要使其在其他方法中可用,您必须在类的@interface中将其声明为实例变量。