任何CollectionView对象的NSUnknownKeyException

时间:2012-12-04 11:00:15

标签: objective-c cocoa-touch ios6 uicollectionview

免责声明:我对这门语言很陌生,所以如果我做了一些不合逻辑的事情或者解释错误的话,我会道歉。我也是StackOverflow的新手......

到目前为止,在Xcode(Objective-C)中,我已经启动了一个空项目并添加了一个View Controller对象,其中包含一个Collection View对象,其中包含一个Collection View Cell。那个细胞有Image View&标签对象(每个对象之一)。我添加了一个Storyboard和ViewController.h + ViewController.m文件对(UIViewController的子类)。

最初我开始使用一个空的项目模板,但遇到了问题并删除了项目文件夹并重新开始使用单视图模板。

现在,每当我在任何项目中使用任何CollectionView对象时,我都会在运行Xcode时收到错误。它出现在Thread 1中,Debug Navigator的“main”部分:

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

我确实使用“breadboxCollectionView”作为CollectionView对象的outlet属性名称,绑定到我的ViewController标头。我在之前的一个项目中做过那个。

如果我添加第二个Collection View对象,并将其绑定到View Controller头文件,作为名为“breadboxCollectionView”的属性的出口,则应用程序启动时不会抛出任何异常。它不显示第二个集合视图对象,但我会在这一点上考虑一个完全不同的障碍。我需要对“breadboxCollectionView”的引用消失。

我尝试删除第二个Collection View对象,但之后运行应用程序:boom,同样的错误出现。

我尝试按以下顺序删除第二个Collection View对象:1)删除outlet连接2)删除视图控制器头文件中的属性条目3)删除第二个集合视图对象。

我删除并重新安装了Xcode。我删除了以前项目的所有痕迹。我又从头开始了一个新项目......我还使用Xcode之外的文本编辑器打开了我的* .storyboard文件,并搜索了“breadboxCollectionView”的任何痕迹。

我仍然得到相同的错误,对“breadboxCollectionView”的引用相同,并且无法找到我的计算机上列出此变量的位置来修复它。

我在这里尝试过其他问题,关于NSUnknownKeyException错误,但似乎每个问题都倾向于相当独特。在我看来,对于这种情况,Apple Developer文档也没那么有帮助。

有没有人有任何建议?

更新1:

我刚刚做了以下内容,实际上找到了对“breadboxCollectionView”的引用。虽然,它没有帮助:

  1. 打开xcode.app包内容
  2. finder搜索breadbox
  3. 只出现一个文件
  4. 使用xcode打开
  5. xcode中没有变量的迹象
  6. 关闭xcode并使用textedit.app重新打开
  7. cmd + F搜索“breadbox”
  8. * .storyboard文件中显示的单个结果;我以为我做到了这一点并且之前没有发现任何事情:

    <class className="ViewController" superclassName="UIViewController">
                <source key="sourceIdentifier" type="project" relativePath="./Classes/ViewController.h"/>
                <relationships>
                    <relationship kind="outlet" name="BreadrackCollectionView" candidateClass="UICollectionView"/>
                    <relationship kind="outlet" name="breadboxCollectionView" candidateClass="UICollectionView"/>
                </relationships>
    </class>
    
  9. 删除了条目

  10. 与textedit.app一起保存
  11. 关闭并使用xcode
  12. 重新打开
  13. 跑项目
  14. 模拟器仍然会抛出相同的错误。
  15. 有没有办法彻底清理我的100%Xcode的计算机,并重新开始?我没有做过很多,这是我唯一的项目。我不应该错过任何重要的事情。我是否应该这样做,甚至?

1 个答案:

答案 0 :(得分:0)

所以,我找到了答案。它来自非SO资源,但说明如下:

  

也许您应该尝试清除Xcode以及iPhone的缓存   模拟器。

     

Xcode缓存:   How to Empty Caches and Clean All Targets Xcode 4

     

iPhone模拟器从菜单中打开模拟器,选择iOS   模拟器 - &gt;重置内容和设置

这适用于我的情况,实际上非常好。我现在可以在项目中使用CollectionView对象,而无需引用错误的属性插座。

感谢大家,感谢您宝贵的意见和时间!