我有一个大型的Xcode项目,用于我正在构建的游戏。 我最近切换了我正在使用的动画框架(cocos2d)的版本,为了保持干净,我继续从头开始创建了一个全新的Xcode项目。
在创建新的项目文件后,我复制了文件系统中的所有源文件,然后将它们拖到 Xcode 项目导航器中,将它们符号链接到新项目中。 一切都很好。
但这就是它变得奇怪的地方。 每当我使用 Xcode 搜索导航器对我的项目进行全局文本搜索时,它都会从旧项目中搜索文件! 而且只有来自旧项目的文件!
我能想到的唯一可能的解释是,Xcode 以某种方式识别出我的文件名与旧项目中使用的文件名相同,并决定忽略较新版本而支持旧版本。 Xcode 中是否有任何这样的缓存或首选项可以做这样的事情? 请记住,路径是不同的,因为新项目的文件都存在于一个全新的目录中。 但是类名是相同的。
如果这相关:我曾经创建了一个 Xcode 工作区,其中包含该项目的旧版本(但不是新版本)。 我很久以前就放弃了工作区,因为它有问题,转而直接处理项目。
更新:这似乎是一个与Xcode相关的问题 - 我发现我在所有项目中都缺乏搜索能力。 我卸载了Xcode(我的版本仍在使用开发人员目录)并安装了不使用开发人员目录的最新版本(4.3.3),但我仍然看到这个问题。
我很好奇是否有人知道一种方法来清除 Xcode 的项目代码索引缓存,如果存在这样的事情,这可能会"重置"它对我的项目的知识,从而修复这种情况。 可能是库目录中的某些内容?
关于可能发生的事情的最后一个线索:除了搜索导航器失败之外,我注意到我的一个项目仍在使用文件系统中不再存在的资源 - 再次让我认为 Xcode 已经在某处缓存了有关我的项目的信息,现在正在使用不再存在的过时版本的文件。 这篇文章通过重置模拟器的内容和设置帮助我解决了这个问题,但搜索问题仍然存在。
您是否检查过"查找选项"? 同样的问题困扰着我,然后我想起我在"我的范围"中添加了一个自定义范围,将XCode定向到我的另一个项目。 将其改回"工作区"解决了问题。