Xcode 4:自动完成和跳转到我的Xcode 3项目中的定义

我的项目是在Xcode 3中创build的,我在Xcode 4中打开它并注意以下几点:

  • “跳转到定义”不再适用于我自己的符号(但是UI *甚至TT *符号都可以正常工作!)
  • 自动完成/“代码感”和Xcode 3一样糟糕,即它暗示了一切
  • 我的项目class不显示在class级导航器(同样,系统和Three20类显示!)

然而,当创build一个新的 Xcode 4项目时,这些function似乎起作用。 不幸的是,唯一的解决办法似乎是重新创build项目并重新导入所有内容。 这个项目太大了!

我试过的东西:

  • 删除组织者中的派生数据
  • 清理项目
  • 安装Xcode 4 Gold Master和Final版本

更新

  • 这个bug在Xcode 4.0.1中没有解决。

在我们的案件中,罪魁祸首竟然是三个版本的旧版本。 为了让项目工作,我不得不:

  1. 从项目中删除对three20的所有引用
  2. 请按照http://three20.info/article/2011-03-10-Xcode4-Support上的说明进行操作;

一旦安装了新的库,xcode4就会自动重新编制索引。 代码完成,跳转到定义,甚至重构现在所有的工作。 使用Xcode的Joy(tm)回来了! 🙂

更一般地说,任何将其头文件放入BUILT_PRODUCT_DIR的库都可能有类似的问题。

窗口菜单上:

  1. 组织者
  2. 项目选项卡
  3. 你的项目
  4. 删除派生数据
  5. 重新启动Xcode

从他人的答案小提示:

第4步之后,不要重build项目,而是重新启动Xcode。

当我丢失xcode超级不错的代码提示是什么对我有用:

窗口(菜单) – >pipe理器(菜单) – >项目(选项卡)

然后

按删除派生数据(这是相同的去到文件夹,并手动删除它)

但!!!!! 在这一步不重build,但closuresxcode和重新打开该项目。 这对我有效。

我今天在XCode 4最终版本中遇到了同样的问题,正在使用旧的XCode 3项目。 问题与XCode创build的符号索引有关。 它应该为你自动创build一个新的索引,但在XCode 4中似乎需要很长时间。一个可能的解决scheme是去〜/ Library / Developer / Xcode / DerivedData并删除旧的索引。 重新启动XCode,你应该看到它索引。 对于“跳转到定义”,您可以按住命令并将鼠标hover在某个方法或类名上,您应该看到蓝色下划线,如超链接。 然后你可以点击它来跳转到定义。

编辑:看来,如果你有任何自定义标题searchpath,以支持多个目标与共享代码XCode 4索引将打破,然后随着它的助手和codesense。 我已经提出这个作为#ID 9182099与苹果。 还有一个问题,如果您在项目全局和目标特定的构build设置之间有任何冲突的设置索引将无法正确完成。 确保你的构build设置是一致的。

我刚刚在一个非常大的多目标商业项目中遇到了这个问题。 作为额外的痛苦,所有的xib文件都不会在辅助视图中显示控制器,也不会有子类/超类/同级/类别辅助视图。

经过多次search和删除索引等实验,我被迫创build一个新的空项目,并重新导入一切。 我知道你说过你的项目太大了,但我不认为有其他的select。 最后,我花了大部分时间来彻底迁移我的项目。 我想你可以期待在未来的发布会上得到一个解决scheme,但是我现在select硬着头皮来从新function中提高生产力。

为了达到这个目的,我创build了一个新的“空白”项目,然后手动重新创build了我需要的目标。 然后,我删除了新目标的源文件和.plist文件,让我再次使用我需要的三个目标的空项目。

然后,我只是select“添加文件..”一次一个文件夹链接对目标的需要。 我停止并build立每个目标,因为它被导入来处理最近的叮当给我的任何编译器错误。

如果复杂的组层次结构未映射到文件系统文件夹结构,则需要在导入后重新创build组,或者经历将所有文件移动到子文件夹并重新指向XCode中引用的痛苦过程。

您还需要仔细检查目标中的任何自定义构build设置,并重新链接您包含的任何库。 另外请确保您从目标链接中删除任何批量导入的.plist文件。

对不起,如果这不是你所希望的答案。

http://three20.info/article/2011-03-10-Xcode4-Support为我工作。; 具体擦除三个20的Build目录。 奇怪的是,即使所说的构build是在xcode4中进行的。 CodeSense开始工作的时候,我抹去了三个20的构build目录,我甚至不必重新编译或重新加载项目。

这只是为我工作:

  • 打开你的Xcode项目。
  • 打开项目目录中的命令提示符并input:

    touch MyProject.xcodeproj/project.pbxproj

  • 注意语法着色和其他东西在你的眼睛之前得到修复。

  • 如果项目scheme重置为iOS项目的“我的Mac”,请重新打开项目(或调整项目设置)。

我通过删除Organizer中的派生数据,运行touch MyProject.xcodeproj/project.pbxproj并重新打开项目来解决问题。 重新打开后,它开始索引,然后再次工作。

在我的XCode 4安装程序中,重新启动后,设置“用户头searchpath”将会中断codesense,尤其是“Jump to Definition”,这是100%的可重复性。 我已经创build了一个新的项目,把我的帮手库添加为一个子项目。 如果我包含用户头searchpath(recursion)头,我可以编译,但自动完成/导航是打破。

删除标题searchpath,closures项目,然后重新打开,再次修复。

在几个地方也添加了这个注释,所以也许Google juice会帮助程序员重新启动并运行…但无论如何,我发现如果你只是在YourAppName-Prefix.pch文件上使用touch命令,它会得到语法突出显示/着色和代码完成/跳回,而不必删除所有派生数据或重新启动Xcode。 我在.bashrc文件中做了这个别名。

alias pch_touch='touch /path/to/your/apps/Prefix.pch'

. ~/.bashrc

在触摸pch文件约1-2秒之内,语法着色再次出现,这是一个符号完成/跳跃现在也正在工作。 一些令人伤心的这种强大的工具让一些元数据/有状态错误变得卑躬屈膝,但是这里还是有的。 至less它让你重新开始,不再浪费你的时间。

我在这里遇到了同样的问题。 没有定义链接,代码感或语法高亮。 删除派生的数据不起作用,甚至创build一个新的项目没有任何区别。 虽然它可能不是你有同样的问题,清理build设设置(以便没有项目和目标之间的冲突)像里克说,解决了我(虽然我还不知道哪个设置是/造成了这个问题)。

关于“跳转到定义”,请点击“schemeselect”button(窗口右上angular显示构build,设备和模拟器列表),然后单击代码编辑器,然后单击“命令”单击或者再次跳转到定义。

我最近发现,每当“跳转到定义”停止工作,我可以做到这一点,它再次运作一段时间。 这不是一个修复,但已经是一个有用的解决方法。

我不知道它是否有助于某人,但是当我切换到Xcode 4时,我得到了C ++项目的代码索引。我还没有切换到Lion,所以我仍然有4.02版本。 当在Xcode中创build项目时,我会使用外部构build选项,但是这并没有将HEADER_SEARCH_PATHS正确地添加到项目中。 我发现使用:

  cmake -G Xcode . 

生成xcode项目,正确设置此variables并启用整个项目的索引。

我有这个完全相同的问题。 我有一个ViewControllers扩展一个类,我调用BaseViewController的项目。 我将下面的代码添加到BaseViewController.h中,并且语法着色和代码自动完成破坏! 即使重复删除派生数据,问题仍然存在。 我不敢相信!

 @implementation UIView (FindFirstResponder) - (UIView *)findFirstResponder { if (self.isFirstResponder) { return self; } for (UIView *subView in self.subviews) { UIView *firstResponder = [subView findFirstResponder]; if (firstResponder != nil) { return firstResponder; } } return nil; } @end 

评论这个代码解决了我的问题! 我有XCode版本4.4.1(4F1003)

从这里的评论我能够debugging与我的项目类似的问题,它似乎是一个坏的-w标志,铛预处理器不能正确识别。 基本上跑步

defaults write com.apple.dt.Xcode IDEIndexingClangInvocationLogLevel 3

在terminal增加索引器的详细程度,并应该帮助你追查问题。 运行Console.app并searchIDEIndexingClang