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中没有解决。
在我们的案件中,罪魁祸首竟然是三个版本的旧版本。 为了让项目工作,我不得不:
- 从项目中删除对three20的所有引用
- 请按照http://three20.info/article/2011-03-10-Xcode4-Support上的说明进行操作;
一旦安装了新的库,xcode4就会自动重新编制索引。 代码完成,跳转到定义,甚至重构现在所有的工作。 使用Xcode的Joy(tm)回来了! 🙂
更一般地说,任何将其头文件放入BUILT_PRODUCT_DIR的库都可能有类似的问题。
在窗口菜单上:
- 组织者
- 项目选项卡
- 你的项目
- 删除派生数据
- 重新启动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
。