iOS App在ActionSheet上崩溃

时间:2014-11-21 15:14:13

标签: ios objective-c uitableview uiactionsheet

我有一个UITableview。选择行时会弹出UIActionSheet。添加我使用的UIActionSheet

[actionSheet showFromRect:cell.bounds inView:cell animated:NO];

一切正常,我可以在UIActionView中选择项目,我可以在外面点击它消失。但是当它消失时(从外面敲击或选择一个项目)并快速点击其他内容,例如在后台,应用程序崩溃并显示以下消息:

-[UIActionSheet _dismissForTappedIndex:]: message sent to deallocated instance 0x173796d0

我猜应用程序需要关闭工作表,但它之前已经发布了吗?谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

尝试保留对UIActionSheet的引用。例如,使它成为一个属性。此错误意味着ARC过快地释放对象.IF错误停止发生然后就是问题。

答案 1 :(得分:0)

如果您正在使用'clickedButtonAtIndex'委托方法来捕捉点击,在iOS8下我也遇到了崩溃,虽然在更改为didDismissButtonAtIndex时已修复。

我和UIAlertView有类似的崩溃,所以UIActionSheet也可能出现这种情况。

在iOS8下,请将您的委托方法clickedButtonAtIndex更改为 didDismissWithButtonIndex

将此行更改为

 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{

用这个

 - (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex (NSInteger)buttonIndex {

您应该会发现这将解决崩溃。

我希望这会有所帮助。