我在第一次初始化时显示UIAleartView
显示信息:
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@""
message:@"..."
delegate:self
cancelButtonTitle:@"..."
otherButtonTitles:@"...", nil];
alertView.tag = 1;
[alertView show];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
switch (alertView.tag) {
case 1: {
[UICKeyChainStore setString:@"YES" forKey:kDebutFirstMsgShow];
if (buttonIndex == 0) {
NSNotificationCenter *noti = [NSNotificationCenter defaultCenter];
[noti postNotificationName:@"...." object:nil];
}
break;
}
default:
break;
}
}
这是log:
2017-02-10 01:16:44.206 audition[1740:55532] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(
0 CoreFoundation 0x000000010b09bd4b __exceptionPreprocess + 171
1 libobjc.A.dylib 0x000000010aad421e objc_exception_throw + 48
2 CoreFoundation 0x000000010afcd2eb -[__NSArrayM objectAtIndex:] + 203
3 UIKit 0x0000000109854e8f __86-[_UIAlertControllerView _unlocalizedOrderedPresentableAlertActionViewRepresentations]_block_invoke + 68
4 CoreFoundation 0x000000010b02b0b2 __53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 114
5 CoreFoundation 0x000000010b02af42 -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 194
6 UIKit 0x0000000109854dfc -[_UIAlertControllerView _unlocalizedOrderedPresentableAlertActionViewRepresentations] + 213
7 UIKit 0x00000001098543b5 -[_UIAlertControllerView _reloadInterfaceActionViewRepresentations] + 50
8 UIKit 0x0000000109855f6e -[_UIAlertControllerView _setVisualStyle:] + 380
9 UIKit 0x00000001090bab35 -[UIAlertController _updateProvidedStyleWithTraitCollection:] + 455
10 UIKit 0x00000001090bac0f -[UIAlertController _updateProvidedStyle] + 57
11 UIKit 0x00000001090bae7a -[UIAlertController traitCollectionDidChange:] + 236
12 UIKit 0x0000000108eedfac -[UIViewController _traitCollectionDidChange:] + 108
13 UIKit 0x0000000108eee0cf -[UIViewController _updateTraitsIfNecessary] + 269
14 UIKit 0x0000000108e12957 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 884
15 QuartzCore 0x000000010bb2abf8 -[CALayer layoutSublayers] + 146
16 QuartzCore 0x000000010bb1e440 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
17 UIKit 0x0000000108e00928 -[UIView(Hierarchy) layoutBelowIfNeeded] + 1509
18 UIKit 0x0000000108df6e33 -[UIView(Geometry) setBounds:] + 2387
19 UIKit 0x0000000108df603d -[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] + 608
20 UIKit 0x0000000108e0080e -[UIView(Hierarchy) layoutBelowIfNeeded] + 1227
21 UIKit 0x0000000108df315b -[UIView(Geometry) setFrame:] + 1297
22 UIKit 0x00000001090b9f26 -[UIAlertController loadView] + 201
23 UIKit 0x0000000108eef61c -[UIViewController loadViewIfRequired] + 201
24 UIKit 0x0000000108eefe70 -[UIViewController view] + 27
25 UIKit 0x0000000108f0a0a5 -[UIViewController _setPresentationController:] + 100
26 UIKit 0x0000000108f015f4 -[UIViewController _presentViewController:modalSourceViewController:presentationController:animationController:interactionController:completion:] + 1355
27 UIKit 0x0000000108f0328e -[UIViewController _presentViewController:withAnimationController:completion:] + 4971
28 UIKit 0x0000000108f0626b -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 530
29 UIKit 0x0000000108f05d51 -[UIViewController presentViewController:animated:completion:] + 179
30 UIKit 0x00000001098413bf -[_UIAlertControllerShimPresenterWindow presentAlertController:animated:completionBlock:] + 642
31 UIKit 0x000000010983f6f6 -[_UIAlertControllerShimPresenter _presentAlertControllerAnimated:completion:] + 219
32 UIKit 0x00000001090d42e6 -[UIAlertView _showAnimated:] + 278
33 audition 0x00000001063f9840 -[DebutVC viewWillAppear:] + 448
34 UIKit 0x0000000108ef596f -[UIViewController _setViewAppearState:isAnimating:] + 692
35 UIKit 0x0000000108ef607f -[UIViewController __viewWillAppear:] + 147
36 UIKit 0x0000000108e0b59b __86+[UIView(Internal) _transitionFromView:toView:duration:options:animations:completion:]_block_invoke + 62
37 UIKit 0x0000000108e085c0 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:] + 581
38 UIKit 0x0000000108e087f2 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:animations:start:completion:] + 145
39 UIKit 0x0000000108e0b4bf +[UIView(Internal) _transitionFromView:toView:duration:options:animations:completion:] + 603
40 UIKit 0x0000000108f1677a -[UIViewController(UIContainerViewControllerProtectedMethods) transitionFromViewController:toViewController:duration:options:animations:completion:] + 771
41 audition 0x000000010645c1b1 -[MHTabBarController setSelectedIndex:animated:] + 2849
42 audition 0x000000010645cca3 -[MHTabBarController tabButtonPressed:] + 99
43 UIKit 0x0000000108d4f8bc -[UIApplication sendAction:to:from:forEvent:] + 83
44 UIKit 0x0000000108ed5c38 -[UIControl sendAction:to:forEvent:] + 67
45 UIKit 0x0000000108ed5f51 -[UIControl _sendActionsForEvents:withEvent:] + 444
46 UIKit 0x0000000108ed4910 -[UIControl touchesBegan:withEvent:] + 304
47 UIKit 0x0000000108dbd285 -[UIWindow _sendTouchesForEvent:] + 2043
48 UIKit 0x0000000108dbec33 -[UIWindow sendEvent:] + 4011
49 UIKit 0x0000000108d6b9ab -[UIApplication sendEvent:] + 371
50 UIKit 0x000000010955872d __dispatchPreprocessedEventFromEventQueue + 3248
51 UIKit 0x0000000109551463 __handleEventQueue + 4879
52 CoreFoundation 0x000000010b040761 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
53 CoreFoundation 0x000000010b02598c __CFRunLoopDoSources0 + 556
54 CoreFoundation 0x000000010b024e76 __CFRunLoopRun + 918
55 CoreFoundation 0x000000010b024884 CFRunLoopRunSpecific + 420
56 GraphicsServices 0x000000010ca64a6f GSEventRunModal + 161
57 UIKit 0x0000000108d4dc68 UIApplicationMain + 159
58 audition 0x0000000106493c91 main + 241
59 libdyld.dylib 0x000000010d05868d start + 1
从日志文件NSRangeException中有一个数组为空但我可以访问它的元素0。但
当我评论[alertview show]
时崩溃消失;
这次事故的原因是什么?
答案 0 :(得分:3)
崩溃日志显示您的代码发生在此处:
33 audition 0x00000001063f9840 -[DebutVC viewWillAppear:] + 448
您无法show
来自viewWillAppear
的提醒,因为您的视图尚未显示在界面中(将显示,但尚未显示) 。请尝试将show
代码移至viewDidAppear
。