我正在实现一个应用程序,在这个应用程序中我使用了一些“CABasic动画”。例如:
myAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"];
myAnimation.fromValue = [NSNumber numberWithFloat:-5.0f];
myAnimation.toValue = [NSNumber numberWithFloat:744.0f];
myAnimation.duration = t;
myAnimation.repeatCount = 1;
[myUIImageView.layer addAnimation:myAnimation forKey:@"myAnimation"];当我把这段代码放在后面时:
NSLog(@"Count : %i", myAnimation.retainCount);它返回给我一个1,所以我想我会‘释放’CABasicAnimation。
但当我试图“释放”它时,它失败了,它给了我:
"CABasicAnimation发布:发送给已解除分配的实例0x8c02a00的消息“
请怎样修正这个错误?
发布于 2013-10-01 17:33:26
发生此错误是因为您正在释放一个已经在自动释放池中的对象。稍后,当池被耗尽时,对象已经被释放了,这时您看到了错误。
如果没有用alloc、new或copy创建对象,就不要发布它!在示例代码中,您不拥有myAnimation,因此不需要发布它。句号。
除非您正在调试一些非常奇怪的东西,否则不要查看retainCount。这就是它的全部目的。在大多数情况下,在这种情况下,它甚至都帮不了你。
https://stackoverflow.com/questions/19122363
复制相似问题