Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 计算机信息存储管理_Ios_Objective C_Memory Management_Cabasicanimation_Retaincount - Fatal编程技术网

Ios 计算机信息存储管理

Ios 计算机信息存储管理,ios,objective-c,memory-management,cabasicanimation,retaincount,Ios,Objective C,Memory Management,Cabasicanimation,Retaincount,我正在实现一个应用程序,在其中我使用了一些“cabasicanition”。例如: myAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; myAnimation.fromValue = [NSNumber numberWithFloat:-5.0f]; myAnimation.toValue = [NSNumber numberWithFloat:744.0f]; myAnimation

我正在实现一个应用程序,在其中我使用了一些“cabasicanition”。例如:

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 release]:消息已发送到解除分配的实例0x8c02a00”


请如何修复此错误?

发生此错误是因为您正在释放已在自动释放池中的对象。当池稍后被排空时,对象已经被释放,此时您将看到错误

如果未使用
alloc
new
copy
创建对象,请不要释放该对象!在示例代码中,您不拥有
myAnimation
,因此不需要发布它。句号


不要看
retainCount
,除非你正在调试一些非常奇怪的东西。这就是它的全部目的。在大多数情况下,它甚至不会在这些情况下帮助您。

发生错误是因为您正在释放一个已经在自动释放池中的对象。当池稍后被排空时,对象已经被释放,此时您将看到错误

如果未使用
alloc
new
copy
创建对象,请不要释放该对象!在示例代码中,您不拥有
myAnimation
,因此不需要发布它。句号


不要看
retainCount
,除非你正在调试一些非常奇怪的东西。这就是它的全部目的。在大多数情况下,它甚至不会在这些情况下帮助您。

提示:请查看[retaincount]标记的描述。当然还有(后面是通常的建议:只要有可能(并且在iOS上总是可能),请使用ARC。)我查看了官方文档,并在提问之前尝试了一些事情我是否需要从“UIImageView”的“层”中删除“动画”?@user205709,您需要接受更多对您有帮助的答案。如果你不这样做,会给回答者留下不好的印象。提示:看一下[retaincount]标签的描述。当然还有(然后是通常的建议:只要有可能(而且在iOS上总是有可能),使用ARC。)我看了官方文档,并在提问之前尝试了一些事情我是否需要从“UIImageView”的“层”中删除“动画”?@user205709,您需要接受更多对您有帮助的答案。如果你不这样做,会给回答者留下不好的印象。真的很有帮助!谢谢=)而且我不需要从“UIImageView”的“层”中删除“动画”?非常有用!谢谢=),我不需要从“UIImageView”的“层”中删除“动画”吗?