2012-05-31 40 views
0

我发现了这样的错误:iOS 5的EXC_BAD_ACCESS代码= 2 CABasicAnimation

enter image description here

有了这个代码:

-(void)lowerGUI { 
[mainGUI.layer addAnimation:guiLower forKey:@"transform.translation.y"]; 

}

我有一个UIView其中I”如果需要,上下动画可以将其移开。我建立了我的动画在viewDidLoad中:

guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"]; 
guiLower.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 
guiLower.duration = 1; 
guiLower.fromValue = [NSNumber numberWithFloat:320]; 
guiLower.toValue = [NSNumber numberWithFloat:481]; 

的代码生成和运行正常,但是当我点击按钮,运行动画,出现错误。

任何想法?

谢谢。

+0

您使用ARC

在.h文件中

?是'guiLower'属性? – sergio

+0

否ARC,guiLower是一个CABasicAnimation。 – mrEmpty

回答

2

有机会,你应该持有一个参考动画:

guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"]; 
在你的类的实例变量或财产

,并确保分配给它的对象是正确保留。确实,EXC_BAD_ACCESS通常是由访问一个已经释放的对象实例引起的。

例子:

@property (nonatomic, retain) CABasicAnimation* guiLower; 

在.m文件:

@synthesize guiLower; 

... 

self.guiLower = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"]; 
... 
+0

对它进行排序,谢谢。动画不会动画,但这是另一回事。这是瞬间的,它忽略了时间。但嘿嘿:) – mrEmpty

+0

作为一个更新,最后我做了一个简单的UIView动画,对于如此简单的事情更有意义。 – mrEmpty

相关问题