0

我在我的应用程序中使用 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];
}

在第二个视图控制器中我做了同样的事情,但改变了动画方向。

我真正的问题是当我运行这段代码时,每次我创建另一个类的对象并且它没有解除分配。通过分析这段代码,发现每次对象还活着并且它没有死亡并且内存分配增加。

4

1 回答 1

1

您可以在启用引用计数记录的情况下运行分配工具。然后根据该数据评估偏移量与您的预期不同的地方。

于 2012-04-23T05:19:14.000 回答