gpt4 book ai didi

iphone - animateWithDuration后由于访问错误而崩溃

转载 作者:行者123 更新时间:2023-12-03 15:54:31 26 4
gpt4 key购买 nike

请参见下面的代码。它显示带有图像的动画效果。

UIImageView *imgView = [[UIImageView alloc] initWithImage:img];  // ref count = 1
int offX = imgView.frame.size.width / 6;
int offY = (imgView.frame.size.height - 44) / 6;
imgView.frame = CGRectMake(offX, offY, imgView.frame.size.width - offX * 2,
(imgView.frame.size.height - 44) - offY * 2);
[overlayView addSubview:imgView]; // ref count = 2
[imgView release]; // ref count = 1
[UIView animateWithDuration:1.0 animations:^{
[imgView setCenter:CGPointMake(TRASH_X, TRASH_Y)];
[imgView setTransform:CGAffineTransformMakeScale(0.1, 0.1)];
[imgView setAlpha:0.5];
} completion:^(BOOL finished) {
[imgView removeFromSuperview]; // ref count = 0? destroy imgView object?
}];

从上面的代码中,如果删除[imgView版本],则不会崩溃。但是,以上代码使完成例程崩溃。为什么?我认为引用计数就像评论一样发生了变化。这样就不会崩溃了。

您能否解释一下完成例程为什么会崩溃?

最佳答案

好。我解决了我的问题。
实际上,问题不在我显示的代码中。这段代码没有问题。

崩溃的原因与用作UIImageView初始参数的'img'对象有关。实际上,我不小心从另一个地方释放了它一次。

我认为当UIImageView对象释放时,尝试释放它的Image对象。但是,它已经被释放,因此崩溃发生了。看起来[imgView removeFromSuperview]崩溃了。

对不起,抱歉。

关于iphone - animateWithDuration后由于访问错误而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5834145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com