Ios UIImageView自动从self.view中删除自身

Ios UIImageView自动从self.view中删除自身,ios,cocoa-touch,uiimageview,Ios,Cocoa Touch,Uiimageview,我知道您可能无法仅从这段代码中推断出问题所在,但这段代码中是否有任何东西使tutorialImage自动从其superview中删除自身 无论如何,在UIView动画期间,图像会淡入淡入,有点像正常,然后消失。如果我在那里添加最后一行代码(注释的代码),UIView动画将使图像淡入并在中途闪烁一次。我刚刚添加了这个图像,没有代码告诉它从superview中删除自己 如果您对解决问题或向您展示更多代码有任何想法,请告诉我,我会经常检查 另外,我尝试重新启动模拟器,但没有成功,教程图像在h文件UII

我知道您可能无法仅从这段代码中推断出问题所在,但这段代码中是否有任何东西使tutorialImage自动从其superview中删除自身

无论如何,在UIView动画期间,图像会淡入淡入,有点像正常,然后消失。如果我在那里添加最后一行代码(注释的代码),UIView动画将使图像淡入并在中途闪烁一次。我刚刚添加了这个图像,没有代码告诉它从superview中删除自己

如果您对解决问题或向您展示更多代码有任何想法,请告诉我,我会经常检查

另外,我尝试重新启动模拟器,但没有成功,教程图像在h文件
UIImageView*tutorialImage中声明。当问题发生时,控制台不会显示任何错误或任何内容

编辑:


好吧,奇怪。我从
UIImageView*tutorialImage更改了H文件中的声明
@property(强,非原子)UIImageView*教程图像然后使用_tutorialage修复了问题。这与强参数有关吗?我将标记谁能解释发生了什么是正确的。

当你有一个弱引用时,ARC将在对象上不再有保留时解除锁定对象(当没有对象用强指针指向对象时)。当您将@property更改为strong时,您现在告诉ARC将对象保留在周围,直到父对象(您的视图控制器)解除锁定。

以前有其他人遇到过类似的问题吗?这很奇怪。就本代码而言,ivar和属性之间应该没有实际的区别,至少在过早释放视图的情况下是如此。也有兴趣找到答案。您的代码中是否还有其他地方可以使用
tutorialImage
属性或ivar?只有在uiview完成后才可以使用。
tutorialImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Tap to Start.png"]];
tutorialImage.frame = CGRectMake(0, 0, 1024, 768);
[tutorialImage addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(blankMethod)]];
tutorialImage.userInteractionEnabled = YES; // i use this line and the previous line so that the user can't press any buttons behind the image
tutorialImage.alpha = 0;
[self.view addSubview:tutorialImage];
[self.view bringSubviewToFront:tutorialImage];
[UIView animateWithDuration:1.0f animations:^{
    tutorialImage.alpha = 1;
} completion:^(BOOL finished) {
    [self.view addSubview:tutorialImage]; // this line makes the image come back
}];