假设您正在使用XCode 4,请在Project Navigator中选择您的项目,然后选择您的目标。选择Build Phases,并验证:
您的所有笔尖都列在“复制捆绑资源”下。
所有'.m'文件都列在'编译源'下。
(如果您使用的是Xcode 3,您可以在项目导航器本身的“目标”下找到它们。)
有时,由于某些奇怪的原因,nib文件不会被置于构建阶段。
如果这不能解决问题,请在Interface Builder中,对于有问题的每个笔尖,单击文件所有者,选择标识检查器,然后检查该类是否设置为相应的笔尖。
这听起来像是一个NIB缓存问题(错误结束“......在Interface Builder文件中”)。当我重命名NIB时,我已经看到了类似的问题,而不是在代码中的某个地方纠正它,但后来惊讶地看到错误的名称仍然有效,因为它会出现NIB缓存。不是直接并行,但它说明了应用程序数据被缓存超出代码的当前构建的点,并且在您的错误的情况下,它指的是接口构建器,因此可能是感兴趣的NIB Cache。
通常,执行“干净构建”可以解决此问题,但如果您完全从头开始,则没有任何遗留构建文件夹内容,因此这似乎不是问题。因此,一种可能性是尝试自己手动清除NSCachesDirectory并查看是否可以解决问题。 (任何人都可以确认NIB缓存存储在NSCachesDirectory中吗?)
其次,似乎从Xcode构建的过程可能无法直接镜像真正的AppStore升级,因为在实际的AppStore升级中除了用户数据目录之外整个应用程序被删除,因此应删除任何缓存的数据。 关于这个问题的一个答案 提出了一个有趣的想法,即构建应用程序然后通过iTunes安装可能会更接近真实的升级过程,从而告诉您问题是否存在于真正的升级中而不是从Xcode构建。值得研究,因为所有报告都是在更新时清除NIB缓存。