删除了nib文件,但键值连接仍然存在 - NSUnknownKeyException

时间:2012-10-31 20:50:01

标签: iphone ios xcode nib

我一直在查看档案,但没有找到答案的问题。所以我希望这是显而易见的,我只是缺席了。

我有一个iphone应用程序,在过去两年中已经在商店中发布了各种版本。我终于对通过nib文件管理方向更改感到沮丧。所以我已经从项目中完全删除了我的笔尖,现在我通过代码创建了所有字段。

我删除了nib文件后,在测试中发现了一个奇怪的崩溃。但我做了一些清理工作,无法重现它。所以我发货了。我的一小部分用户看到了崩溃的情况。

我相信我能够在我的调试器中重现它并获得此输出。

2012-10-22 08:08:22.776 ChakraChimePro[60502:16d03] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'[<CCProChimeViewController 0x8578100> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key btnRingBowl.' 
*** First throw call stack:
(0x1f57022 0x1ccacd6 0x1f56ee1 0x2b6022 0x227f6b 0x227edb 0x242d50 0x78871a 0x1f58dea 0x1ec27f1 0x78726e 0x62d1fc 0x62d779
0x62d99b 0x6490a9 0x648edd 0x6474aa 0x64729e 0x351b 0x564386 0x565274 0x574183 0x574c38 0x568634 0x20eaef5 0x1f2b195 0x1e8fff2
0x1e8e8da 0x1e8dd84 0x1e8dc9b 0x564c65 0x566626 0x2ef6 0x2e25)
terminate called throwing an exception(lldb) 

所以我已经完全删除了我的类属性btnRingBowl。在课堂上没有任何参考。但我也完全删除了附加到IBOutlet的nib文件。所以不应该再引用它了。 为什么我的二进制文件仍然试图访问它?

我尝试删除该应用并重新安装,问题就消失了。 我已经在应用程序商店安装了相同版本的应用程序,问题就消失了。我无法按需重现问题。但我可以重现它,这会导致我的用户崩溃。

因为我已经完全删除了笔尖和属性。我不知道还能清理什么。有什么建议吗?

我的项目的字符串搜索显示在任何地方都没有引用此名称。

谢谢,

凯文

1 个答案:

答案 0 :(得分:0)

陷入同样的​​问题。 NIB / XIB文件很久以前就被删除了(在我的初次提交之前),只有最近的更新修复才会弹出这个弹出窗口。

我最终从git恢复旧的nib文件,一切正常。然后删除损坏的IB Outlets,使用这些XIB文件重建项目,然后继续。

我不确定恢复旧的nib文件是否适合您,如果没有,可能会重建另一个同名的nib文件,并强制使用新的nib文件重建项目(因此它会清除旧的参考文献?)