Ios 两个完全相同的代码,但其中一个代码有僵尸问题
在rootviewcontroller中,此代码运行良好Ios 两个完全相同的代码,但其中一个代码有僵尸问题,ios,memory,memory-management,memory-leaks,nszombie,Ios,Memory,Memory Management,Memory Leaks,Nszombie,在rootviewcontroller中,此代码运行良好 - (IBAction)gotoAboutGame:(id)sender { aboutGame *aboutGameObj = [[aboutGame alloc]init]; [UIView transitionFromView:self.view toView:aboutGameObj.view duration:2 options:UIViewAnimationOptionTransitionCurlUp com
- (IBAction)gotoAboutGame:(id)sender
{
aboutGame *aboutGameObj = [[aboutGame alloc]init];
[UIView transitionFromView:self.view toView:aboutGameObj.view duration:2 options:UIViewAnimationOptionTransitionCurlUp completion:^(BOOL finished) {
[aboutGameObj release];
}];
[self release];
}
但是当我回到rootviewcontroller时,我收到了僵尸攻击
- (IBAction)gotoMain:(id)sender
{
ViewController *viewControllerObj = [[ViewController alloc]init];
[UIView transitionFromView:self.view toView:viewControllerObj.view duration:2 options:UIViewAnimationOptionTransitionCurlUp completion:^(BOOL finished) {
[viewControllerObj release];
}];
[self release];
}
它显示了rootviewcontroller视图,但当我点击任何按钮时,僵尸攻击就消失了。这段代码属于哪一类 我觉得这条线很可疑
[self release];
为什么物体会释放自己?当然,创建它的对象应该这样做。这段代码在哪个类中
[viewControllerObj release];
我觉得这条线很可疑
[self release];
为什么物体会释放自己?当然,创建它的对象应该这样做
[viewControllerObj release];
把它放在动画块后面
将其放在动画块之后- 按照惯例,类名以大写字母开头,而不是小写字母
- 你的内存管理是非常错误的<代码>[self release]几乎从来都是不正确的(有一些非常深奥的情况)。什么是保持平衡
- 按照惯例,类名以大写字母开头,而不是小写字母
- 你的内存管理是非常错误的<代码>[self release]几乎从来都是不正确的(有一些非常深奥的情况)。什么是保持平衡