免责声明:我对这门语言很陌生,所以如果我做了不合逻辑的事情或解释不正确,我深表歉意。我也是 StackOverflow 的新手...
到目前为止,在 Xcode (Objective-C) 中,我已经启动了一个空项目并添加了一个 View Controller 对象,其中包含一个 Collection View 对象,其中包含一个 Collection View Cell。该单元格具有图像视图和标签对象(每个对象之一)。我添加了 Storyboard 和 ViewController.h + ViewController.m 文件对(UIViewController 的子类)。
最初我从一个空的项目模板开始,但遇到问题并删除了项目文件夹并重新开始使用单视图模板。
现在,每当我在任何项目中使用任何 CollectionView 对象时,我都会在运行它时从 Xcode 中得到一个错误。它出现在线程 1 中,即调试导航器的“主要”部分:
"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 对象的出口属性名称,绑定到我的 ViewController 标头。不过,我在我之前的一个项目中做到了这一点。
如果我添加第二个 Collection View 对象,并将其绑定到 View Controller 头文件,作为名为“breadboxCollectionView”的属性的出口,则应用程序将启动而不会引发任何异常。它不显示第二个集合视图对象,但此时我将考虑一个完全不同的障碍。我需要对“breadboxCollectionView”的引用消失。
我试图删除第二个 Collection View 对象,但是在之后运行应用程序后:繁荣,出现了同样的错误。
我尝试通过按以下顺序执行以下操作来删除第二个集合视图对象:1)删除出口连接 2)删除视图控制器头文件中的属性条目 3)删除第二个集合视图对象。
我已经删除并重新安装了 Xcode。我已经删除了之前项目的所有痕迹。我已经从头开始了一个新项目......再次。我还使用 Xcode 之外的文本编辑器打开了我的 *.storyboard 文件,并搜索了“breadboxCollectionView”的任何痕迹。
我仍然遇到相同的错误,对“breadboxCollectionView”的引用相同,并且无法找到此变量在我的计算机上列出的位置来修复它。
我在这里尝试过其他问题,关于 NSUnknownKeyException 错误,但似乎每个问题都相当独特。在我看来,Apple Developer 文档对于这种情况也没有多大帮助。
有没有人有什么建议?
更新 1:
我只是做了以下,实际上找到了对“breadboxCollectionView”的引用。虽然,它没有帮助:
- 打开 xcode.app 包内容
- finder 搜索面包盒
- 只出现了一个文件
- 用xcode打开
- xcode中没有变量的迹象
- 关闭 xcode 并使用 textedit.app 重新打开
- cmd+F 搜索“面包箱”
*.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>
删除了条目
- 用 textedit.app 保存
- 关闭并使用 xcode 重新打开
- 跑项目
- 模拟器仍然抛出相同的错误。
有没有办法完全清除我的计算机 100% 的 Xcode,然后重新开始?我还没有做很多,这是我唯一的项目。我不应该错过任何重要的东西。我应该这样做吗?