由于Objective C和Swift的混合,我们有一个带有单元测试目标的项目,该目标启用了"定义模块".启用该设置后,语法突出显示和代码完成将停止所有非语言项.IE代码完成将列出语言级别的东西,如NS_ENUM和for循环,但不是NSString,而不是我们的任何类.
如果我创建一个新项目,将"定义模块"设置为YES,则会发生同样的事情.语法突出显示和代码完成在单元测试代码中失败,将其设置为NO它再次开始工作.
我们尝试了所有通常的方法来实现工作,删除"派生数据",选中/取消选中"键入时建议完成"和"启用类型完成",删除"〜/ Library/Caches/com.apple.dt .Xcode",删除var/folders /中的项目,在post构建阶段添加一些清理脚本,将主目标设置为"Defines Module",当然还有无休止的Xcode和macOS重启.
我已经在3台不同的Mac(Sierra)上使用Xcode 8.3.2和Xcode 8.2进行了回购.我有一个没有这个问题的团队成员,唯一真正的区别似乎是他仍然在El Cap.
以下列出了我们尝试过的一些事情:
有没有人有幸使这个工作(除了关闭测试目标中的"定义模块")?我的下一步是提交雷达.
这才刚刚开始.Autocomplete一直工作得相当好,然后开始溅射,只显示autocomplete一些标准的Cocoa类/方法等.最好描述为周期性的奇怪遗漏.我正在使用Cocoa&Objective C但它似乎不仅仅是打破了Objective C.
我删除了派生数据,但没有效果.(默认是~/Library/Developer/Xcode/DerivedData但我喜欢保留在我的项目文件夹中以便于删除)
Xcode 是如此巨大(如操作系统)我在这里重新安装和阅读帖子犹豫不决,无论如何都无法正常工作.
它正在测试我对Cocoa方法和参数顺序的记忆......之前的生活autocomplete还可以,但我想把它还给...
我已经注意到此问题已关闭,但是我遇到了同样的问题。

PS-我在屏幕截图中提到的课程中导入了Alamofire
这是我的吊舱详细信息
platform :ios, '10.0'
use_frameworks!
target 'PhotoTagger' do
pod 'Alamofire'
end
Run Code Online (Sandbox Code Playgroud)
另外,自动完成的唯一事情是AlamofireVersionNumber,当我尝试使用自动完成功能时,我无法访问任何内容。现在,如果我用手编写Alamofire,那么我可以访问一些方法,但是又出了点问题,并且代码没有编译,我认为这归结为无法通过自动完成获取类的问题。
我试过了 -
在项目设置>构建设置中
除Alamofire外,所有其他吊舱均能正常工作。同样,在手动输入类名或粘贴粘贴后,某些正在自动完成的方法与Alamofire类的实际方法没有相同的签名
请请请!! 帮助我解决这个问题,以便面对这个问题的人也可以帮助自己。到目前为止,还没有任何解决方案。
我在AlamofireGithub页面上打开了一个问题,但他们回答了
Sorry, we're not responsible for Xcode's autocomplete issues.
In the future, you should open questions like this on Stack Overflow
and tag alamofire.
Cheers.
Run Code Online (Sandbox Code Playgroud)
请帮忙,我在相当长的一段时间内一直坚持下去。
这是我的项目设置详细信息
此外,我已经建立了项目,但问题仍然存在。
PS-手动手动编写类,甚至可以手动编写方法,但是每次编译时,我都必须转到github页面,以复制粘贴方法签名,问题是使用自动完成功能,我可以浏览所有方法签名并知道关于公众可用的方法。但是我只限于github中可用的示例方法,因为每次我必须复制粘贴方法并覆盖实现时。同样,它会编译并运行,但是自动完成对类或函数均无效。
xcode ×4
autocomplete ×2
ios ×2
objective-c ×2
alamofire ×1
cocoa ×1
cocoapods ×1
swift ×1
unit-testing ×1
xcode8 ×1
xcode9 ×1
xcode9-beta ×1