我遇到过xcode停止自动完成的情况,如果你试图写一个已定义的变量,xcode会说<< error type>>
。
这是我的错误:
答案 0 :(得分:25)
我已经开始在Xcode 6.1和iOS 8.1更新后看到相同的错误。我发现如果你在/Users/username/Library/Developer/Xcode/DerivedData/ModuleCache
路径删除ModuleCache文件,它会暂时修复错误。而且,在执行此操作时,您不必关闭Xcode或项目。删除文件后,只需等待Xcode再次索引项目文件即可。在那之后,问题大部分都会解决一段时间。
由于它没有永久解决问题,因此在Apple解决此问题之前,您应该避免根据其他答案编写导致此问题的代码。
答案 1 :(得分:10)
这通常表明您的代码目前尚未编译。 Swift经常难以在代码上计算类型,而这些代码本身并不正确。在某些情况下,它是编译器中的一个错误。 AnyObject
的使用对编译器来说可能特别混乱,应尽可能避免使用。在这种情况下,AnyObject
是必需的,但您应该尝试将其快速转换为特定类型。例如,如果您可以提供帮助,请不要返回[AnyType]
。
但简单的回答是Swift编译器仍在不断发展,它无法在复杂情况下解决类型问题,特别是在部分或(当前)错误代码上。
请注意,您已将var
用于许多应该let
的内容。除非您确实需要修改变量,否则您应该更喜欢let
。它可以帮助您防止出现多种错误,并且可以更容易地在编译器上进行处理(因为变量的更改方式更少)。
答案 2 :(得分:7)
<<error type>>
可能是由Swift编译器找不到头文件造成的。
您是否有某种源代码所在的文件夹结构?如果是,请尝试将Scan All Source Files for Includes
设置为YES
这将使Xcode在尝试查找Header文件时查看所有这些文件夹。
查看存储了定义类型的文件的位置。
在“构建设置”中,确保此位置包含在“搜索路径”中
如果它是用户标题搜索路径的一部分,请确保Always Search User Paths
已开启。
看看你的超类等。它们也包含在搜索路径中吗?
答案 3 :(得分:5)
如果我初始化变量,则发现错误消失并且自动完成再次起作用:
var name: String = "my name"
而不是:
var name = "my name" as String
答案 4 :(得分:0)
首先,尝试CMD-SHIFT-K跟随CMD-R清理然后运行构建。
如果不起作用,请关闭XCode,删除派生数据,然后重新打开XCode。
答案 5 :(得分:0)
我最近遇到了同样的问题。我尝试在模拟器上运行整个项目,它解决了所有<<error type>>