【发布时间】:2014-09-21 14:18:12
【问题描述】:
我遇到过 xcode 停止自动完成的情况,如果您尝试编写已定义的变量,xcode 会显示 << error type>>。
这是我的错误:
【问题讨论】:
-
好的,你发现了一个 xcode 错误,你在问什么?
-
需要清理代码伙伴中的一些空白:/哈哈
我遇到过 xcode 停止自动完成的情况,如果您尝试编写已定义的变量,xcode 会显示 << error type>>。
这是我的错误:
【问题讨论】:
这通常表明您的代码当前未编译。 Swift 在计算本身不正确的代码类型时经常遇到麻烦。在某些情况下,这是编译器中的错误。使用AnyObject 可能会让编译器特别困惑,应尽可能避免使用。在这种情况下,AnyObject 是必需的,但您应该尝试将其快速转换为特定类型。例如,如果您可以提供帮助,请不要返回 [AnyType]。
但简短的回答是 Swift 编译器仍在不断发展,它不能总是在复杂情况下计算出类型,尤其是在部分或(当前)不正确的代码上。
请注意,您正在使用var 来处理很多应该是let 的事情。除非您确实需要修改变量,否则您应该更喜欢let。它可以帮助您防止多种错误,并且可以让编译器更容易处理(因为变量可以更改的方式更少)。
【讨论】:
void 函数上产生错误。但是我的代码编译没有任何问题
在 Xcode 6.1 和 iOS 8.1 更新后,我开始看到同样的错误。我发现如果你删除 /Users/username/Library/Developer/Xcode/DerivedData/ModuleCache 路径的 ModuleCache 文件,它会暂时修复错误。而且您不必在执行此操作时关闭 Xcode 或项目。删除文件后,只需稍等 Xcode 重新索引项目文件即可。在那之后,问题大多会在一段时间内得到解决。
由于它不能永久解决问题,因此在 Apple 解决此问题之前,您应避免根据其他答案编写导致此问题的代码。
【讨论】:
.bash_profile以便于访问:alias clearModuleCache='rm -rf ~/Library/Developer/Xcode/DerivedData/ModuleCache'
如果我像这样初始化变量,发现错误消失并且自动完成功能再次起作用:
var name: String = "my name"
而不是:
var name = "my name" as String
【讨论】:
<<error type>> 可能是 Swift 编译器找不到头文件的结果。
您的源代码是否有某种文件夹结构?如果是这样,请尝试将 Scan All Source Files for Includes 设置为 YES。
这将使 Xcode 在尝试查找 Header 文件时查看所有这些文件夹。
查看定义类型的文件的存储位置。
在您的构建设置中,确保此位置包含在搜索路径中。
如果它是用户标题搜索路径的一部分,请确保 Always Search User Paths 已打开。
看看你的类型的超类等。它们是否也包含在搜索路径中?
【讨论】:
对我来说,只需重新启动计算机即可解决此问题。
【讨论】:
首先,尝试 CMD-SHIFT-K 和 CMD-R 清理然后运行构建。
如果这不起作用,请关闭 XCode,删除派生数据,然后重新打开 XCode。
【讨论】:
我最近遇到了同样的问题。我尝试在模拟器上运行整个项目,它解决了所有<<error type>>
【讨论】: