簡體   English   中英

添加第二個動作時,UIAlertController崩潰(SIGABRT)

[英]UIAlertController crashes (SIGABRT) when adding second action

幾天后,我在我的一個應用程序中看到了一個非常奇怪的行為。 一添加第二個動作,UIAlertController就會崩潰。 這是代碼>

let alertController = UIAlertController.init(title: title, message: message, preferredStyle: .Alert)

for  action in actions
{
    alertController.addAction(action)
}

actions是一個包含UIAlertAction元素的數組,在我的例子中2.我已經嘗試重新排序動作以查看特定UIAlertAction對象是否存在問題,但不是,在添加第二個動作時應用程序總是崩潰。 我像這樣創建它們:

let cancelAction = UIAlertAction.init(title: "Cancel", style: .Cancel)
{ (action:UIAlertAction!) -> Void in
    print("User cancelled action");
}

編輯:這是我創建數組的方式:

showAlertView("Proceed", message: proceedMessage, actions: [cancelAction, proceedAction])

編輯結束

大多數代碼來自Apple教程,幾乎沒有變化。 調試器立即跳轉到class AppDelegate: ...行,沒有其他信息然后SIGABRT,在崩潰日志中我看到:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Filtered syslog:
None found

Last Exception Backtrace:
0   CoreFoundation                  0x1832c6db0 __exceptionPreprocess + 124
1   libobjc.A.dylib                 0x18292bf80 objc_exception_throw + 56
2   CoreFoundation                  0x1832c6c80 +[NSException raise:format:arguments:] + 108
3   Foundation                      0x183c4c154 -[NSAssertionHandler   handleFailureInMethod:object:file:lineNumber:description:] + 112
4   UIKit                           0x188897c24 -[UIAlertController addAction:] + 220
5   MyApp                           0x10007bb60 0x10006c000 + 64352
6   MyApp                           0x10007b648 0x10006c000 + 63048
7   MyApp                           0x10007929c 0x10006c000 + 53916
8   MyApp                           0x100079554 0x10006c000 + 54612
9   UIKit                           0x1886de1a8 -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion:] + 2676
10  UIKit                           0x1886cbf84 -[UIApplication workspace:didReceiveActions:] + 136
11  FrontBoardServices              0x184c677ac __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 36
12  FrontBoardServices              0x184c67618 -[FBSSerialQueue _performNext] + 168
13  FrontBoardServices              0x184c679c8 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
14  CoreFoundation                  0x18327d09c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
15  CoreFoundation                  0x18327cb30 __CFRunLoopDoSources0 + 540
16  CoreFoundation                  0x18327a830 __CFRunLoopRun + 724
17  CoreFoundation                  0x1831a4c50 CFRunLoopRunSpecific + 384
18  GraphicsServices                0x184a8c088 GSEventRunModal + 180
19  UIKit                           0x18848e088 UIApplicationMain + 204
20  MyApp                           0x10007d984 0x10006c000 + 72068
21  libdyld.dylib                   0x182d428b8 start + 4

有人有任何想法嗎? 最奇怪的是,幾天前相同的代碼工作。 因為我從Yosemite升級到El Capitan之后遇到了很多Xcode 7.3的問題(基本上它幾乎無法使用並且不斷崩潰)我最近重新安裝了它。 但代碼是一樣的......

最佳回歸Bjoern

我的猜測是你設置了style: .Cancel了超過1個動作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM