无法识别的选择器发送到实例NSArrayM

时间:2014-02-24 20:06:29

标签: ios objective-c crash

我是IOS编程的新手。今天我尝试实现UITabBarController,但决定删除它。从那以后我的应用程序崩溃了。我确定我已经删除了app委托的右侧部分,因为我使用了ctrl + z。我似乎无法找出应用程序崩溃的原因以及原因?

源码:

http://www.codeviewer.org/view/code:3cc0

调试:

2014-02-24 21:00:26.628 app[1307:70b] -[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0xca716d0
2014-02-24 21:00:26.631 app[1307:70b] *** Terminating app due to uncaught exception    'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0xca716d0'
*** First throw call stack:
(
0   CoreFoundation                      0x02b235e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x028a68b6 objc_exception_throw + 44
2   CoreFoundation                      0x02bc0903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3   CoreFoundation                      0x02b1390b ___forwarding___ + 1019
4   CoreFoundation                      0x02b134ee _CF_forwarding_prep_0 + 14
5   app                                 0x000627e9 -[MenuViewController viewDidLoad] + 16057
6   UIKit                               0x01728318 -[UIViewController loadViewIfRequired] + 696
7   UIKit                               0x017285b4 -[UIViewController view] + 35
8   UIKit                               0x01752ca9 -[UINavigationController rotatingSnapshotViewForWindow:] + 52
9   UIKit                               0x01a7ca60 -[UIClientRotationContext initWithClient:toOrientation:duration:andWindow:] + 420
10  UIKit                               0x016582f2 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:] + 1495
11  UIKit                               0x01657d16 -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:] + 82
12  UIKit                               0x01657be8 -[UIWindow _setRotatableViewOrientation:updateStatusBar:duration:force:] + 117
13  UIKit                               0x01657c70 -[UIWindow _setRotatableViewOrientation:duration:force:] + 67
14  UIKit                               0x01656d0a __57-[UIWindow _updateToInterfaceOrientation:duration:force:]_block_invoke + 120
15  UIKit                               0x01656c6c -[UIWindow _updateToInterfaceOrientation:duration:force:] + 400
16  UIKit                               0x016579c3 -[UIWindow setAutorotates:forceUpdateInterfaceOrientation:] + 870
17  UIKit                               0x0165afb6 -[UIWindow setDelegate:] + 449
18  UIKit                               0x0172c737 -[UIViewController _tryBecomeRootViewControllerInWindow:] + 180
19  UIKit                               0x01650c1c -[UIWindow addRootViewControllerViewIfPossible] + 609
20  UIKit                               0x01650d97 -[UIWindow _setHidden:forced:] + 312
21  UIKit                               0x0165102d -[UIWindow _orderFrontWithoutMakingKey] + 49
22  UIKit                               0x0165b89a -[UIWindow makeKeyAndVisible] + 65
23  app                                 0x00012ecf -[AppDelegate application:didFinishLaunchingWithOptions:] + 1391
24  UIKit                               0x0160e355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
25  UIKit                               0x0160eb95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536
26  UIKit                               0x016133a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
27  UIKit                               0x0162787c -[UIApplication handleEvent:withNewEvent:] + 3447
28  UIKit                               0x01627de9 -[UIApplication sendEvent:] + 85
29  UIKit                               0x01615025 _UIApplicationHandleEvent + 736
30  GraphicsServices                    0x0448c2f6 _PurpleEventCallback + 776
31  GraphicsServices                    0x0448be01 PurpleEventCallback + 46
32  CoreFoundation                      0x02a9ed65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
33  CoreFoundation                      0x02a9ea9b __CFRunLoopDoSource1 + 523
34  CoreFoundation                      0x02ac977c __CFRunLoopRun + 2156
35  CoreFoundation                      0x02ac8ac3 CFRunLoopRunSpecific + 467
36  CoreFoundation                      0x02ac88db CFRunLoopRunInMode + 123
37  UIKit                               0x01612add -[UIApplication _run] + 840
38  UIKit                               0x01614d3b UIApplicationMain + 1225
39  app                                 0x0008f4fd main + 141
40  libdyld.dylib                       0x030c370d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

1 个答案:

答案 0 :(得分:0)

您是否也从Interface Builder中的.xib文件中删除了UITabBarController? 您是否也从Interface Builder中的.xib文件中删除了UITabBarController? 检查对象 - 在你的情况下NSDictionary是它的类,键不是null。例如:

- (void)fetchedDataAlerta:(NSData *)responseData {
    NSError* error;
    NSLog(@"RESP register %@", responseData);
    if(responseData ) { //here you have recieved valid info. Without it, next line  will crash
        NSDictionary* json = [NSJSONSerialization options:kNilOptions error:&error];

在你的情况下

NSData* rawBody2 = [response2 rawBody];
//here check if NSData is not null, nil and is valid add line
if (rawBody2) {
    results2 = [NSJSONSerialization JSONObjectWithData:rawBody2 options:NSJSONReadingMutableContainers error:nil];