首页 新闻 赞助 找找看

ios开发碰到一个问题,setValue:forUndefinedKey:

0
悬赏园豆:5 [已关闭问题] 关闭于 2012-05-22 10:46

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x687ef50> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key datePicker.'

*** First throw call stack:

(0x13c8022 0x1559cd6 0x13c7ee1 0x9c0022 0x931f6b 0x931edb 0x94cd50 0x23471a 0x13c9dea 0x13337f1 0x23326e 0xd91fc 0xd9779 0xd999b 0xf50a9 0xf4edd 0xf34aa 0xf334f 0xf151b 0xf1d7a 0xdb38f 0xdb5eb 0xdc4ed 0x49a0c 0x4ef92 0x4914b 0x2995 0x10386 0x11274 0x20183 0x20c38 0x14634 0x12b2ef5 0x139c195 0x1300ff2 0x12ff8da 0x12fed84 0x12fec9b 0x10c65 0x12626 0x271d 0x2685)

terminate called throwing an exception(lldb) 

运行会报错

代码:Pickers.zip

我在

http://q.cnblogs.com/q/34894/

上面看过和我一样的问题,我也把源码下下来和我的进行了比对,但是没有发现有什么不对

我删除了SFJDatePickerViewController.xib 上的Picker控件和File's Owner的datePicker的关联就可以正常启动,但关联上就报异常再运行就报异常,在源码中也一样关联上却没错,不知道错在哪,请园友帮忙

(我认为datePicker声明成一个IBOutlet就可以和Picker控件上的Picker变量关联,使datePicker接受来自picker的值,如有错误请指正)

ios
飘渺的风的主页 飘渺的风 | 菜鸟二级 | 园豆:204
提问于:2012-05-21 22:12
< >
分享
所有回答(5)
0

重新敲了一边搞定,具体不知道哪一点错了,但是有几点怀疑

1、当xib文件和IBOutlet关联时,有可能第一次关联错误,虽然多次删除,但是仍可能存在(但自己把整个控件都删除了呀)

2、直接复制书里的代码后自己进行了一下代码调节(不知道是不是和这个有关系,不过仔细检查过应该没问题吧)

3、自己看书的时候有些不仔细,有些都看漏了(再次看的时候发现了一些遗漏,但是好像与这个错误没关系)

飘渺的风 | 园豆:204 (菜鸟二级) | 2012-05-22 10:46
3

你所遇到的问题通常是在xib的定义时出现了问题,对于ios的初学者经常会碰到此类问题。

要检查这一问题,可以从两个方面入手。

第一种出错的原因可能是错误的IBOutlet连接,即xib中定义了某个IBOutlet,但是在对应的头文件中,该IBOutlet已经被修改或删除。要检查这一问题,可以打开xib文件,在File's Owner上点击右键,然后在弹出的窗口中检查是否有“惊叹号”提示的IBOutlet连接,基本上可以找到问题所在。

第二种出错的原因可能是在xib文件中没有正确指定对象的类。要检查这一问题,可以打开xib文件,查看自定义视图控制器或者视图的Custom Class是否定义正确即可。

趣味苹果开发 | 园豆:208 (菜鸟二级) | 2013-04-07 16:40

谢楼主 ,顺便问一下 [<UIViewController 0x687ef50> 如何快速定位到这个位置 ,每次崩溃都需要找好久才找到问题所在。

多谢楼主!

支持(0) 反对(0) qyindelong | 园豆:197 (初学一级) | 2015-12-12 17:19
0

为什么一个uiview类 指定不了他 File's Owner? 搞晕了 请问咋回事

圣所 | 园豆:212 (菜鸟二级) | 2016-01-07 16:47
1

如果是序列化Model时导致的,只需要添加一下方法就可以了

-(void)setValue:(id)value forUndefinedKey:(NSString *)key

Adolph007 | 园豆:202 (菜鸟二级) | 2016-01-26 15:41
0

对xib的控件需要一一对应,最好将xib检查一遍,和代码中用到xib的控件,一旦没有一一对应的关系,很难找到相应的控件,所以容易报错

魏蜀黍的魏夫人 | 园豆:202 (菜鸟二级) | 2017-02-15 17:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册