gpt4 book ai didi

ipad - UIActionSheet在iPad上再次出现后崩溃

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

UIActionSheet在第二次出现后崩溃。

.H文件

..UIActionSheetDelegate>{

UIActionSheet *popupQuery;
}
@property (nonatomic, retain) UIActionSheet *popupQuery;

.M文件
-(IBAction)showActionSheet:(id)sender {

if (popupQuery.visible) {
NSLog(@"popupQuery isVisible");

[popupQuery dismissWithClickedButtonIndex:-1 animated:YES];

return;
}else{


popupQuery = [[UIActionSheet alloc] initWithTitle:@"Title" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Readibility" otherButtonTitles:@"Email URL", @"Print", nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
//[popupQuery showInView:self.view];


[popupQuery showFromBarButtonItem:actionButton animated:YES];

[popupQuery release];
}
}

最佳答案

当您从popupQuery中显示actionButton后释放它时,您将放弃对对象的所有权。如果对象被释放,那么popupQuery将指向一个释放对象,当您执行popupQuery.visible时,它可能会导致崩溃。由于您拥有它作为属性(property),因此您可以这样做–

self.popupQuery = [[[UIActionSheet alloc] initWithTitle:@"Title" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Readibility" otherButtonTitles:@"Email URL", @"Print", nil] autorelease];

最后删除 release语句。现在,当您使用 popupQuery.visibleself.poupQuery.visible时,该对象将有效。在这种情况下,您将拥有所有权并且可以安全地访问该对象。

关于ipad - UIActionSheet在iPad上再次出现后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6558313/

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