gpt4 book ai didi

iphone - uiviewanimationstate版本。程序随机崩溃

转载 作者:行者123 更新时间:2023-12-03 15:57:14 25 4
gpt4 key购买 nike

该应用程序很少崩溃。有一次它崩溃了,我得到以下报告:

[UIViewAnimationState release]:message sent to deallocated instance

我找不到这用在哪里。我在代码中没有使用任何动画。崩溃的原因可能是什么?

这是我怀疑它崩溃的代码
-(void)showMessageSendingIndicator
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];
self.av1=[[UIAlertView alloc] initWithTitle:@"Sending Message, please wait..." message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *ActInd=[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[ActInd startAnimating];
[ActInd setFrame:CGRectMake(125, 60, 37, 37)];
[self.av1 addSubview:ActInd];
[self.av1 show];
[pool release];
return;
}

最佳答案

首先,将av1设置为保留对象。将此行替换为以下内容:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sending Message, please wait..." message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];

self.av1 = alert;

[alert release];

其次,您永远不会释放 ActInd。在 [ActInd release]之前添加 [pool release]。这是安全的,因为当您调用 av1addSubview:保留了它

在侧面节点上,为什么要使用 NSAutoreleasePool?您通常需要将它们放在单独的线程上,但是显示 Activity 指示器应在主线程上完成。

而且,如果您想遵循任何约定,则应将 ActInd替换为 actInd

关于iphone - uiviewanimationstate版本。程序随机崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6236126/

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