У меня есть приложение, которое я изначально написал для iOS 6, но теперь я хочу, чтобы он работал на iOS 7. Я открыл проект в Xcode 5 и отредактировал некоторые вещи. Он работал нормально, за исключением сообщения об ошибке в строках Need a root view controller before launch
(я не помню точной формулировки). Это показалось мне странным, поскольку был установлен rootViewController, и приложение все еще работало нормально. Я тогда отредактирован еще немного, и теперь я получаю следующее сообщение об ошибке, когда линия [self.window makeKeyAndVisible]
называется:IOS 7 makeKeyAndVisible не работает
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'
*** First throw call stack:
(
0 CoreFoundation 0x01f155e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x01b058b6 objc_exception_throw + 44
2 CoreFoundation 0x01ec7c3c -[__NSArrayM insertObject:atIndex:] + 844
3 CoreFoundation 0x01ec78e0 -[__NSArrayM addObject:] + 64
4 Nobles 0x00003efd -[AppDelegate addReachabilityDisabledButton:] + 109
5 Nobles 0x00014f4c -[FoodViewController viewDidLoad] + 188
6 UIKit 0x0077e9a8 -[UIViewController loadViewIfRequired] + 696
7 UIKit 0x0077ec44 -[UIViewController view] + 35
8 Nobles 0x000129fa -[MenuViewController viewDidLoad] + 1322
9 UIKit 0x0077e9a8 -[UIViewController loadViewIfRequired] + 696
10 UIKit 0x0077ec44 -[UIViewController view] + 35
11 UIKit 0x006a75ad -[UIWindow addRootViewControllerViewIfPossible] + 66
12 UIKit 0x006a7947 -[UIWindow _setHidden:forced:] + 312
13 UIKit 0x006a7bdd -[UIWindow _orderFrontWithoutMakingKey] + 49
14 UIKit 0x006b244a -[UIWindow makeKeyAndVisible] + 65
15 Nobles 0x000036b2 -[AppDelegate application:didFinishLaunchingWithOptions:] + 2642
16 UIKit 0x00664f65 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
17 UIKit 0x006657a5 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
18 UIKit 0x00669fb8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
19 UIKit 0x0067e42c -[UIApplication handleEvent:withNewEvent:] + 3447
20 UIKit 0x0067e999 -[UIApplication sendEvent:] + 85
21 UIKit 0x0066bc35 _UIApplicationHandleEvent + 736
22 GraphicsServices 0x034912eb _PurpleEventCallback + 776
23 GraphicsServices 0x03490df6 PurpleEventCallback + 46
24 CoreFoundation 0x01e90dd5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
25 CoreFoundation 0x01e90b0b __CFRunLoopDoSource1 + 523
26 CoreFoundation 0x01ebb7ec __CFRunLoopRun + 2156
27 CoreFoundation 0x01ebab33 CFRunLoopRunSpecific + 467
28 CoreFoundation 0x01eba94b CFRunLoopRunInMode + 123
29 UIKit 0x006696ed -[UIApplication _run] + 840
30 UIKit 0x0066b94b UIApplicationMain + 1225
31 Nobles 0x00002c2d main + 141
32 libdyld.dylib 0x0317f725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Я проверил, если RootViewController был равен нулю перед вызовом этой линии, если, но его не было. Я не изменял AppDelegate до того, как эта ошибка началась.
Любые идеи?
Заранее спасибо.
В Xcode ударил команду 7, чтобы открыть точку останова навигатора. В нижней части этого левого окна щелкните значок плюса. Нажмите «Добавить точку останова исключений ...» Перезапустите приложение и наблюдайте за трассировкой стека. Скопируйте трассировку стека (просто выберите все и нажмите команду c) и вставьте ее в вопрос выше. – Saltymule
@Dan_Gabicoware Это удовлетворительно? – carloabelli
При возникновении сомнений прочитайте эту ошибку. 'reason: '*** - [__ NSArrayM insertObject: atIndex:]: объект не может быть nil'. Это говорит вам совершенно ясно, что вы пытаетесь вставить объект nil в массив. Посмотрите на первый кадр в трассировке стека, который вы написали, и посмотрите, что же такое ноль. – Kevin