我正在关注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
我很难过,需要弄清楚这一点,所以我可以继续前进并最终完成这本书。我需要能够在下周完成我的第一个应用程序工作。
答案 0 :(得分: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中删除了根视图分配(结果没有崩溃,但是空白屏幕)然后分配了如上所示的视图(视图显示完美!)。