加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 奇怪的UIAlertView私有方法崩溃_performPopup

发布时间:2020-12-14 19:59:30 所属栏目:百科 来源:网络整理
导读:我试图找出UIAlertView中私有方法导致的崩溃.我的应用程序崩溃大约有一半涉及此问题. -[UIAlertView(Private) _performPopup:animationType:revealedBySpringBoardAlert:] 这是我的崩溃报告中的部分.困扰我的是,我的大多数警报视图都是由设计为在整个应用程
我试图找出UIAlertView中私有方法导致的崩溃.我的应用程序崩溃大约有一半涉及此问题.

-[UIAlertView(Private) _performPopup:animationType:revealedBySpringBoardAlert:]

这是我的崩溃报告中的部分.困扰我的是,我的大多数警报视图都是由设计为在整个应用程序生命周期中存在的单例对象弹出的.所以我不确定这是否是由UIAlertView的委托在被它调用之前发布的.谁看过这个吗?你能给些建议么?谢谢.

Hardware Model:      iPhone4,1
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2012-11-15 11:31:57.452 -0800
OS Version:      iOS 6.0.1 (10A523)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x5354440a
Crashed Thread:  0

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libobjc.A.dylib                 0x33ab95b6 objc_msgSend + 22
1   UIKit                           0x32e52fa0 -[UIAlertView(Private) _performPopup:animationType:revealedBySpringBoardAlert:]
2   UIKit                           0x330621c4 -[UIAlertView(Private) _repopupNoAnimation]
3   UIKit                           0x33065b38 __36-[_UIAlertStackWatcher _appResumed:]_block_invoke_0
4   libdispatch.dylib               0x37ec211c _dispatch_call_block_and_release
5   libdispatch.dylib               0x37ec14b4 _dispatch_client_callout
6   libdispatch.dylib               0x37ec61b8 _dispatch_main_queue_callback_4CF$VARIANT$mp
7   CoreFoundation                  0x39ba2f36 __CFRunLoopRun
8   CoreFoundation                  0x39b15eb8 CFRunLoopRunSpecific
9   CoreFoundation                  0x39b15d44 CFRunLoopRunInMode
10  GraphicsServices                0x37ee32e6 GSEventRunModal
11  UIKit                           0x32d552f4 UIApplicationMain
12  MYAPP                           0x0000334a main + 70
13  MYAPP                           0x000032fc start + 36

解决方法

这听起来像代表在这里引起了问题.对于不需要跟踪用户输入的简单UIAlertView,您只需将委托设置为nil,例如:

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"My Alert" message: @"My Message" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];

如果确实需要委托方法,请确保在丢失视图时忽略UIAlertView的委托:

alert.delegate = nil;

无论是dealloc还是viewWillDisappear:取决于代码的设置方式!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读