今天早上,Xcode 9.0(9A235)显示了一个新的/奇怪的自动完成框,完全不是以前的样子。我如何得到完整的自动完成框,使自动完成看起来像它通常做什么?
删除派生数据文件夹似乎解决了我的问题
当文件不是 Target 的成员时,可能会发生这种情况。打开自动补全不起作用的文件,并显示 Xcode 右上角的“ Utitility”选项卡(下面的截图中是蓝色)。
确保选中 Target (通常是应用程序的名称)。自动补全应该几乎可以立即工作,而无需重新启动 Xcode、清理或删除派生数据。
如果它已经被检查过了,一定要取消检查并再次检查。对我来说,它起到了作用。
可以尝试的事情: # 1 如果使用 cocoapods,请在项目目录中运行此命令:
rm -rf ~/Library/Caches/CocoaPods; rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*; pod deintegrate; pod setup; pod install;
清理项目-> Cmd + Shift + K
清除构建文件夹-> Cmd + Shift + Option + K
如果你跳过了第一步: 删除派生数据 Xcode Preferences-> Locations-> 箭头符号带您到 DerrivedData-> 删除文件夹
Xcode Preferences
Locations
DerrivedData
项目中的每个 .swift和 .m文件都应该在这个列表中,否则它不会在这些文件中自动完成。
.swift
.m
对每个类属性和函数使用 filepprivate * 可以减少每个项的编译器工作范围。
编写模块化/OOP 代码,这样编译器可以读取的代码就更少了。
当结果是一个复杂的计算时,避免使用类型推断,并尝试将复杂的计算分解为 let this = smallerOperation语句
let this = smallerOperation
* 在 Swift 4中,private 比 filepprivate 更严格
在 Xcode 12中,在删除派生数据的频率方面有了显著的改进(尽管冻结增加了)。
试试:
刚刚花了一天时间来解决 Xcode (9.2)的自动补全问题。删除派生数据似乎只能短暂工作,然后事情就恢复了。重新启动等等和其他建议的巫术没有起到作用。
我放弃了,从 Jet Brains 下载了30天的 AppCode 试用版。“自动补全”在那里工作得很好,这可能是个巧合,但它后来又开始在我在 Xcode 的项目中起作用。不能保证它能继续工作。
从“测试目标”中删除该文件修复了我的问题。
对我来说,它发生在我的测试文件中,因为出于某种原因,它不是目标的一部分。设置目标成员解决了这个问题。
请试着这样做:
选择文件 > > 检查该文件是否添加到 UITtestingorUnitTestingtarget(档案督察-> 目标成员)。如果是这样,请取消这两个选项,并确保只选择了项目目标。然后构建并尝试自动完成是否工作正常。
这招对我很管用,希望能帮到别人。
对我来说,当我丢弃一个文件(在 Source Control > Commit 下)的所有更改时,问题就出现了,这实际上删除了该文件。这就是我想要的,我认为该文件和所有引用它将被删除了。
但是,在 Project 导航器中仍然有对该文件的引用(显示为红色)。删除 Project 导航器中的(现在不存在的)文件奇迹般地带回了自动完成。
清理、删除派生数据等无济于事。我只是意识到删除的文件仍然显示时,我尝试建立我的项目,当然失败了,因为它无法找到该文件。
希望这能帮助某人节省30分钟:)
只有当文件的源代码类型没有设置为 Objective-C 时,或者当您使用另一种语言编写时(即使只有一小段,比如说,C) ,自动完成才不起作用。
如果在您正在编辑的行上或行上出现语法错误,那么它也无法工作。在方法调用的末尾缺少一个花括号(即使它不在您正在编辑的文件中)将阻止自动完成获取建议相关命令所需的上下文。一个丢失的文件(在文件列表中以红色显示)也是如此,即使它不是您正在处理的文件。
当它这样做时,尝试生成来定位错误,然后修复它们。
在我的案例中,它似乎是特定于文件的(Xcode 9.2) ,对我来说,修复方法是:
最后经过3个小时的尝试一切-自动完成工程,因为它应该。
这个链接帮助了我。打开构建设置并填写框架搜索路径。见下图。
问题主要是因为在项目导航器中缺少某些文件的位置(构建错误)
Project Navigator
或者你可以:
希望这个能帮上忙
经过长时间的寻找,我终于为自己解决了这个问题。在 Xcode > Preferences > Text Editing 中,在“ Code Completion”中,出于某种原因,我选中了“ Use Escape key to show )”。只要我取消选中此框,自动完成工作就像一个魅力,甚至不需要重新启动 Xcode!(Xcode 10)
在 Xcode,构建错误可能会破坏自动完成功能。
这里有一点变通,但工程。
清理项目... Command + Shift + K
清除生成文件夹... Command + Shift + Options (Alt) + K
删除项目的派生数据..。 这可以在以下链接的帮助下完成:
如何删除 Xcode 9中的派生数据?
关闭 XCode。
重新打开 XCode (让索引完成)并构建项目... Command + B
一旦它将与建设完成,建议将回来。我已经尝试了两次。
更新:
有时候问题可以很简单,比如复制文件名。 仔细检查您添加的任何新文件名是否与旧文件冲突。
在 Xcode 11.4中,即使将现有文件移动到另一个组,建议也会消失。只要重新启动 Xcode 就可以解决这个问题。
我在这里添加了我的项目正在进行的内容,以防它可以帮助其他人... ... 我有两个同名的文件和我没有意识到。
使用 Command + B 或 Command + R到 建造或 快跑的项目 Xcode 有时会搞砸;)
Command + B
Command + R
Suggest completions while typing
我在使用 Xcode 10.2,我也遇到了同样的问题。
这个来自 Axel的回答帮助我解决了这个问题。
不管怎样,我还要再描述一下:
YourProject.xcodeproj
Show Package Contents
xcuserdata
youruser.xcuserdatad
如果你也有 xcworkspace(如果你已经安装了任何 豆荚) ,那么做步骤3和4,如果没有,那么只是跳过步骤3和4:
xcworkspace
YourProject.xcworkspace
转到 xcuserdata并删除你的 youruser.xcuserdatad
退出 Xcode
Rm-rf ~/Library/Developer/Xcode/deriedData
我的情况可能显得太具体,以帮助,但它可能会给某人一个想法,如何解决破碎的自动完成。Xcode 10.2.1.
在我的情况下,自动完成完全停止工作,没有这些其他的答案帮助我。此外,电脑上的风扇声音越来越大,表明有些东西超负荷工作(没有其他应用程序运行) ,应该注意到我正在 MacBook Pro 笔记本电脑上编辑。这似乎与编辑努力解析我写的方程式有关:
switch mtype { case .indeterminate: newPosition.x = (frame.width - mainFigureText.frame.width) / 2 case .right: newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) + (frame.width / 2) case .left: newPosition.x = (((frame.width / 2) - mainFigureText.frame.width) / 2) }
我正在寻找动画的文本视图左,右,或到中间取决于用户的喜好。该 newPosition是一个 CGPoint,文本将动画到。不管怎样,我把方程式分开,突然自动完成开始工作,风扇就安静下来了!通过重新输入上面的代码,然后用以下代码替换,我已经不止一次地重新创建了这个特定的问题:
newPosition
CGPoint
let halfFrameWidth: CGFloat = frame.width / 2 let middleLeft = (halfFrameWidth - mainFigureText.frame.width) / 2 switch doseType { case .right: newPosition.x = middleLeft + halfFrameWidth case .left: newPosition.x = middleLeft default: newPosition.x = (frame.width - mainFigureText.frame.width) / 2 }
我有一个问题,100% 不工作自动完成,没有一个写在这里有帮助。我注意到一件事——它在添加了一些实体之后被破坏了。Xcdatamodel 文件,默认情况下具有 codegen 类定义。
因此,当使用旧式的 codegen 没有(当然也没有生成类)立即解决这个问题时,我并不感到惊讶,即使没有重新启动 xcode。
如果冗余地命名文件,也会发生这种情况,
Data.swift
我想在这一堆解决方案中再加上一个,因为这是唯一一个对我有用的方案,在这里找不到。
Xcode 通常为每个项目提供两个默认的构建配置。Release & Debug.我有一个额外的单元测试名为 Testing。在 Xcode 10.1、10.2、10.3和11 beta 中,新的构建系统似乎并不喜欢它,只有在使用 Release或 Debug时才会自动完成。任何自定义构建配置都会破坏混合(迅速 + 对象)项目中的单元测试自动完成。
Release
Debug
Testing
对于 Xcode 11.1,仅仅执行 Clean Build Folder或删除派生数据不足以修复自动完成。
Clean Build Folder
只是在 重启我的 Mac之后,一切才恢复正常
如果你对奇怪的完成/自动完成/智能感知(不显示默认的东西,如委托和数据源协议方法)有问题,只要改变你的目标(例如从模拟器 iPhone 8到真正的设备) ,建立项目和切换回你的原始目标。
类似于 Interface Builder (故事板)没有显示任何东西,但只有“没有选择”,无论你选择任何视图的一部分。只需切换到其他 Xib/Storyboard (甚至创建新的) ,检查它是否在那里工作,然后切换回来。
这些变通方法在两种情况下都对我有效(在 Xcode 10.2.1的一个项目中,一天内就出现了这两个问题)。从我所看到的所有互联网论坛似乎这些错误从 Xcode 6.x 左右从未修复。
干杯!
Xcode Version 11.0(11A420a)
我已经尝试了 Xcode V11.0的 Lal Krishna解决方案。好几次都成功了,但后来都没有结果。
我找到了一个解决方案。您必须删除两个文件:
这个解决方案现在对我有帮助,对其他人可能也有用
在我的例子中(Xcode 11.1) ,当我使用这个命令 defaults write com.apple.dt.Xcode IDEIndexDisable -bool true停止 Xcode 自动索引时发生了这种情况。
defaults write com.apple.dt.Xcode IDEIndexDisable -bool true
所以我用 defaults write com.apple.dt.Xcode IDEIndexDisable -bool false回滚它。 然后重新启动 macOS 并再次运行 Xcode。
defaults write com.apple.dt.Xcode IDEIndexDisable -bool false
这对我有用:
保存所有项目文件的备份。
删除项目。
创建一个新项目并添加所有文件。
而且它自动工作。
Xcode 11.3 MacOS Catalina
进程 parsecd 达到100% 的 CPU,所以杀死它有助于我
Xcode 11.3也有同样的问题。没有什么以上没有帮助,原来我有构建错误。只要修复构建错误和自动完成将再次工作。
反斜杠在文件夹名打破自动补全功能,如果是这种情况下删除它,并重新建立。
删除目录下的所有文件夹。
{Your User}/Library/Developer/Xcode/DeriveData
这招对我很管用。
试着提取你的子视图,否则自动补全将不起作用。
如果您有很多未提取的子视图,自动完成将停止工作
在右侧的“文件检查器”中,尝试切换“目标成员”如果要创建多平台项目,请尝试切换(macOS)。
自动完成应立即工作,无需重新启动。
我在 Xcode 也遇到过同样的问题。在我的情况下,问题是由于重复的文件名/删除的文件名。最好运行应用程序一次,并检查是否有任何已删除的文件/类,以便您将得到一个语法错误。