我在我的应用程序中使用 ARC。现在我遇到了一个真正的问题。我需要从左到右为两个视图控制器设置动画。所以我只是为按钮动作中的两个视图设置动画,例如,
// thanks to stackoverflow for this code
test *control = [[test alloc] initWithNibName: @"test" bundle: nil];
control.view.frame = self.view.frame;
control.view.center = CGPointMake(self.view.center.x + CGRectGetWidth(self.view.frame), self.view.center.y);
[self.view.superview addSubview: control.view];
// Animate the push
[UIView beginAnimations: nil context: NULL];
[UIView setAnimationDelegate: self];
[UIView setAnimationDidStopSelector: @selector(pushAnimationDidStop:finished:context:)];
control.view.center = self.view.center;
self.view.center = CGPointMake(self.view.center.x - CGRectGetWidth(self.view.frame), self.view.center.y);
[UIView commitAnimations];
- (void) pushAnimationDidStop: (NSString *) animationID finished: (NSNumber *) finished context: (void *) context
{
[self.view removeFromSuperview];
}
在第二个视图控制器中我做了同样的事情,但改变了动画方向。
我真正的问题是当我运行这段代码时,每次我创建另一个类的对象并且它没有解除分配。通过分析这段代码,发现每次对象还活着并且它没有死亡并且内存分配增加。