Xcode 9自动完成不工作100%部分工作

Xcode 9自动完成不工作100%部分工作,xcode,autocomplete,xcode9,Xcode,Autocomplete,Xcode9,今天早上,Xcode 9.0(9A235)显示了一个新的/奇怪的自动完成框,它与以前完全不同。如何获得完整的“自动完成”框,使“自动完成”与通常的情况类似 删除派生数据文件夹似乎可以解决我的问题。多亏了这篇文章:当文件不是目标的成员时,就会发生这种情况。打开自动完成不起作用的文件,并在Xcode的右上角显示“实用程序”选项卡(下面的屏幕截图中为蓝色)。 确保选中了您的目标(通常是应用程序的名称)。Autocomplete几乎可以立即工作,而无需重新启动Xcode、清理或删除派生数据 如果已选

今天早上,Xcode 9.0(9A235)显示了一个新的/奇怪的自动完成框,它与以前完全不同。如何获得完整的“自动完成”框,使“自动完成”与通常的情况类似


删除派生数据文件夹似乎可以解决我的问题。多亏了这篇文章:

当文件不是目标的成员时,就会发生这种情况。打开自动完成不起作用的文件,并在Xcode的右上角显示“实用程序”选项卡(下面的屏幕截图中为蓝色)。

确保选中了您的目标(通常是应用程序的名称)。Autocomplete几乎可以立即工作,而无需重新启动Xcode、清理或删除派生数据

如果已选中,请确保取消选中并再次检查。对我来说,它成功了。

要尝试的事情: #1 如果使用cocoapods,请在项目目录中运行此命令:

rm -rf ~/Library/Caches/CocoaPods;
rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
pod deintegrate; pod setup; pod install;

#2 **清除缓存数据** 清理项目->Cmd+Shift+K

清理构建文件夹->Cmd+Shift+Option+K

如果跳过第一步:
删除派生数据
Xcode首选项
->
位置
->
箭头符号将带您进入
DerrivedData
->删除文件夹


#3 **检查构建阶段的编译源代码** 项目中的每个
.swift
.m
文件都应在此列表中,否则这些文件中不会自动完成


#4 **优化编辑器:** 在每个类属性和函数上使用fileprivate*,可以减少每个项的编译器工作范围

编写模块化/OOP代码,这样编译器就可以读取更少的代码

当结果是复杂计算时,避免使用类型推断,并尝试将复杂计算分解为
let this=smallerooperation
语句

*在Swift 4中,private变得比fileprivate更严格


在Xcode 12中,删除派生数据的频率有了显著的提高(尽管冻结增加了)。

尝试:

  • 转到Xcode>Preferences>Text Editing
  • 在“代码完成”下-取消选中“键入时建议完成”
  • 退出Xcode,然后重新启动Xcode
  • 再次转到Xcode>Preferences>Text Editing
  • 退出Xcode,然后重新启动Xcode
  • 现在转到“代码完成”并选中“在键入时建议完成”
  • 尝试键入库函数或枚举并享受
    刚刚花了一天时间试图解决Xcode(9.2)的自动完成噩梦。删除派生数据似乎暂时有效,然后事情又恢复了。重新启动etc和其他建议的巫毒没有起到作用


    我放弃了,从Jet Brains下载了30天的AppCode试用版。Autocomplete在那个里工作得很好,这可能是巧合,但在我的Xcode项目中它又开始工作了。无法保证它会继续工作…

    从测试目标中删除该文件修复了我的问题。

    对我来说,它发生在我的测试文件中,因为出于某种原因它不是目标的一部分。设置目标成员身份解决了问题。

    请尝试这样做:

    rm -rf ~/Library/Caches/CocoaPods;
    rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*;
    pod deintegrate; pod setup; pod install;
    
    选择文件>检查该文件是否添加到UITesting或UnitTesting目标中(文件检查器->目标成员身份)。如果是,请取消选中这两个选项,并确保仅选择了项目目标。然后构建并尝试自动完成是否工作正常


    这对我有用。希望它能帮助别人。

    对我来说,问题发生在我放弃一个文件的所有更改时(在源代码管理>提交下),这有效地删除了该文件。这就是我想要的,我认为该文件和所有对它的引用也会被挖掘

    但是,在项目导航器中仍然存在对该文件的引用(以红色显示)。删除项目导航器中的(现在不存在)文件会神奇地恢复自动完成

    大量的清理、删除派生数据等都没有帮助。当我试图构建我的项目时,我才意识到删除的文件仍在显示,这当然失败了,因为它找不到该文件


    希望这将帮助某人节省30分钟:)

    在我的案例(Xcode 9.2)中,它似乎是特定于文件的,对我来说,修复是:

  • 删除问题文件(删除引用)
  • 清洁和建造
  • 将文件重新添加到项目中(我没有检查测试目标)
  • 重新构建

  • 终于在尝试了3个小时后,autocomplete正常工作。

    这个链接帮助了我。打开构建设置并填充框架搜索路径。请参见下图


    问题主要是因为project navigator中缺少某些文件的位置(生成错误)

  • 按command+1打开
    项目导航器
    窗格
  • 检查是否有任何丢失的文件
  • 或者你可以:

  • 删除派生数据(命令+shift+K)
  • 清理生成文件夹(命令+shift+option+K)
  • 再次按build(命令+B)
  • 您应该看到生成错误,Xcode找不到阻止生成工具处理自动完成的某些文件
  • 更正并修复您看到的任何丢失的文件

  • 希望这有帮助

    经过长时间的搜索,我终于解决了这个问题。在Xcode>Preferences>Text Editing的“代码完成”中,出于某种原因,我选中了“使用Escape键显示完成建议”。一旦我取消选中这个框,自动完成就像一个魅力,甚至不需要重新启动Xcode!(Xcode 10)

    构建错误可能会破坏Xcode中的自动完成功能。

    这里有一些解决方法,但效果不错

  • 清理项目。。。命令+Shift+K

  • 清理生成文件夹。。。命令+移位+选项(Alt)+K

    <
    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
     }