将对象保留在内存中(iPhone SDK)

时间:2010-05-21 04:59:31

标签: iphone objective-c cocoa memory uiimageview

我正在尝试在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);
    ...
}

1 个答案:

答案 0 :(得分:6)

您已在方法/函数中声明了变量,这使其成为局部变量(即,仅存在于该函数内的变量)。要使其在其他方法中可用,您必须在类的@interface中将其声明为实例变量。