当前位置:  开发笔记 > IOS > 正文

iPhone应用程序崩溃与NSUnknownKeyException setValue:forUndefinedKey:

如何解决《iPhone应用程序崩溃与NSUnknownKeyExceptionsetValue:forUndefinedKey:》经验,为你挑选了3个好方法。

我正在编写我的第一个iPhone应用程序,所以我还没有找到很多调试方法.基本上我的应用程序显示图像,触摸时播放短暂的声音.在XCode中编译和构建项目时,一切都成功构建,但是当应用程序在iPhone模拟器中运行时,它会崩溃.

我收到以下错误:

Application Specific Information:
iPhone Simulator 1.0 (70), iPhone OS 2.0 (5A331)
*** Terminating app due to uncaught exception 'NSUnknownKeyException', 
reason: '[ setValue:forUndefinedKey:]: this class is not key value 
coding-compliant for the key kramerImage.'

kramerImage这里是我用于背景的图像.

我不确定NSUnknownKeyException是什么意思,或者为什么该类不是密钥值编码兼容的密钥.



1> amrox..:

(这不是特定于iPhone的 - 在常规Cocoa中也会发生同样的事情).

使用键值编码访问对象没有的键时,NSUnknownKeyException是一个常见错误.

大多数Cocoa对象的属性可以直接访问:

[@"hello world" length]    // Objective-C 1.0
@"hello world".length      // Objective-C 2.0

或通过键值编码:

[@"hello world" valueForKey:@"length"]

如果我使用以下行,我会得到一个NSUnknownKeyException:

[@"hello world" valueForKey:@"purpleMonkeyDishwasher"]

因为NSString没有名为'purpleMonkeyDishwasher'的属性(key).

代码中的某些东西试图在UIView上为键'kramerImage'设置一个值,显然它不支持该键.如果您正在使用Interface Builder,它可能是您的笔尖中的内容.

找到'kramerImage'的使用位置,并尝试从那里追踪它.


我收到这个错误,这与interfacebuilder有关,但我无法弄清楚如何修复它.

2> 小智..:

此外,当您重命名视图时,不要忘记删除文件所有者上的引用.它也可能引发此错误.



3> Owen Hartnet..:

在这里你会得到这个错误 - 以及如何解决它.我在加载一个只有自定义TableViewCell的笔尖时得到它.我使用IB来构建一个只拥有File的Owner,First Responder和TableViewCell的xib.TableViewCell只有4个UILabel,它与一个名为rootCell的4个IBOutlet UILabel相匹配.我将TableViewCell的类更改为rootCell.它工作得很好,直到做了一些改动,突然我得到了setValue方法:forUndefinedKey:当我从笔尖加载它后,只是实例化类:

    NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"rootCell-iPad" owner:self options:nil];

    cell = [nib objectAtIndex:0];

当笔尖试图加载时,它在第一行失败了.过了一会儿,我注意到它试图将IBOutlet标签与根控制器匹配,而不是rootCell类!那是我的小费.我做错了是无意中将文件所有者更改为rootCell类.当我将其更改回NSObject时,它在加载时没有尝试匹配委托(rootController).因此,如果您正在执行上述操作,请将File的所有者设为NSObject,但将UITableCell设为您想要的类.

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有