Ошибка приложения iPhone XCode при запуске - PullRequest
0 голосов
/ 10 августа 2011

Что конкретно означает эта ошибка и как ее исправить?

2011-08-10 12:06:54.116 ScanTest[973:707] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ScanTestAppDelegate 0x190970> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key navigationController.'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x36d0d64f __exceptionPreprocess + 114
    1   libobjc.A.dylib                     0x33f66c5d objc_exception_throw + 24
    2   CoreFoundation                      0x36d0d3cd -[NSException dealloc] + 0
    3   Foundation                          0x3511eedb -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 182
    4   Foundation                          0x350d79cb _NSSetUsingKeyValueSetter + 90
    5   Foundation                          0x350d7217 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 194
    6   Foundation                          0x350b942f -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 130
    7   UIKit                               0x35cfd8df -[UIRuntimeOutletConnection connect] + 66
    8   CoreFoundation                      0x36ca5d7b -[NSObject(NSObject) performSelector:] + 18
    9   CoreFoundation                      0x36ca599d -[NSArray makeObjectsPerformSelector:] + 388
    10  UIKit                               0x35cfc847 -[UINib instantiateWithOwner:options:] + 586
    11  UIKit                               0x35cfde09 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 92
    12  UIKit                               0x35b284cd -[UIApplication _loadMainNibFile] + 96
    13  UIKit                               0x35b22b09 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 180
    14  UIKit                               0x35af77d7 -[UIApplication handleEvent:withNewEvent:] + 1114
    15  UIKit                               0x35af7215 -[UIApplication sendEvent:] + 44
    16  UIKit                               0x35af6c53 _UIApplicationHandleEvent + 5090
    17  GraphicsServices                    0x36431e77 PurpleEventCallback + 666
    18  CoreFoundation                      0x36ce4a97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
    19  CoreFoundation                      0x36ce683f __CFRunLoopDoSource1 + 166
    20  CoreFoundation                      0x36ce760d __CFRunLoopRun + 520
    21  CoreFoundation                      0x36c77ec3 CFRunLoopRunSpecific + 230
    22  CoreFoundation                      0x36c77dcb CFRunLoopRunInMode + 58
    23  UIKit                               0x35b21d49 -[UIApplication _run] + 372
    24  UIKit                               0x35b1f807 UIApplicationMain + 670
    25  ScanTest                            0x000037fb main + 70
    26  ScanTest                            0x00002e44 start + 40
)
terminate called after throwing an instance of 'NSException'

Вот мой метод didFinishLaunching в моем делегате приложения:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after app launch    
    UINavigationController *navigationController = [[UINavigationController alloc] init];
    [window addSubview:navigationController.view];

    MainViewController *viewController = [[MainViewController alloc] init];
    [navigationController pushViewController:viewController animated:NO];
    [viewController release];

    // Override point for customization after application launch
    [window makeKeyAndVisible];
    return YES;
}

Ответы [ 3 ]

1 голос
/ 10 августа 2011

В вашем MainWindow.xib отсутствует выход для navigationController, хотя он все еще подключен.Либо заново добавьте IBOUtlet в свой AppDelegate.h, либо отсоедините розетку от XIB.

1 голос
/ 10 августа 2011

Это означает, что ваш MainWindow.xib пытается подключить розетку navigationController к делегату приложения.Вы, должно быть, удалили розетку после настройки xib.

0 голосов
/ 10 августа 2011

ваш код напишите так

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after app launch    

    MainViewController *viewController = [[MainViewController alloc] init];

    UINavigationController *navigationController = [[UINavigationController alloc] init];

    [navigationController pushViewController:viewController animated:NO];
    [viewController release];

    [window addSubview:navigationController.view];


    // Override point for customization after application launch
    [window makeKeyAndVisible];
    return YES;
}

теперь это работает ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...