1

我正在关注 Big Nerd Ranch iOS 编程指南(第 3 版),并遵循了它所说的创建这个项目的所有内容。我收到一个错误,但我不知道如何解决,因为我是 iOS 新手。当我从 Xcode 的模板中使用基于单视图的应用程序时,我的程序最初遇到了问题,给了我这个错误:

2012-05-25 16:02:12.926 Whereami[1083:707] 应用程序窗口预计在应用程序启动结束时有一个根视图控制器

在扫描了一些论坛后,我发现我需要在 Xcode 中设置我的 MainInterface:

之前 - https://i.imgur.com/YCnRM.png

之后 - https://i.imgur.com/5QnJ3.png

通过将 xib 文件名添加到设置中的 MainInterface 文本框来修复上述错误后,我收到此错误:

    2012-05-25 16:04:09.068 Whereami[1102:707] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x11f620> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key activityIndicator.
*** First throw call stack:
(0x3507b88f 0x364a2259 0x3507b5c5 0x30eb6323 0x30eb5e23 0x30e8ff09 0x34fda7d3 0x34fdb461 0x323111af 0x3231294d 0x32248509 0x320d1893 0x320cb8d7 0x32099c6b 0x3209970f 0x320990e3 0x362ce22b 0x3504f523 0x3504f4c5 0x3504e313 0x34fd14a5 0x34fd136d 0x320caa13 0x320c7e7d 0x7ebd7 0x7eb7c)
terminate called throwing an exception

这是我的源文件:

AppDelegate.m - https://i.imgur.com/7FdCZ.png

WhereamiViewController.h WhereamiViewController.m

查看 - https://i.imgur.com/IZeoa.png

运行 - https://i.imgur.com/dyYKd.png

我很困惑,需要弄清楚这一点,这样我才能继续前进并最终完成这本书。我需要能够在下周之前完成我的第一个工作应用程序。

4

1 回答 1

1

问题文本似乎你在问这个...... 你可以设置它的一种方法是这样的:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.
    LoginViewController* loginView = [[[LoginViewController alloc]initWithNibName:nil bundle:nil]autorelease];
    mainNavController = [[UINavigationController alloc]initWithRootViewController:loginView];

    //here is the magic line
    [_window addSubview:mainNavController.view];

    [self.window makeKeyAndVisible];
    return YES;
}

或者你可以在没有 mainNavController 的情况下做到这一点:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
        // Override point for customization after application launch.
    LoginViewController* loginView = [[[LoginViewController alloc]initWithNibName:nil bundle:nil]autorelease];

    [_window addSubview:loginView.view];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

标题似乎是您在问这个... 现在,当您尝试访问不存在或拼写错误的选择器或类成员时,通常会出现 NSUnknownKeyException 错误(通常是后者!)。您可以将类想象成字典,调用成员或函数就像通过键查询字典对象。前任。

`@selector(misspelledFunctionName:)` 

或者

[object functionThatIsMisspelledOrNotDefinedInObject];

我不确定问的是哪个问题,所以我试图回答这两个问题。希望这会有所帮助:)

编辑:这两个最终都是答案,或者是它的一部分。UIApplication 没有分配正确的视图,因此 xib 正在发送不存在的键并导致它崩溃。我从 plist 中删除了根视图分配(结果没有崩溃,但出现空白屏幕),然后像上面一样分配了视图(视图显示完美!)。

于 2012-05-25T20:24:17.463 回答