我有一个带有自定义Swift框架的应用程序,用于跨不同平台共享业务规则。每次我尝试使用这个框架中的一个类时,Xcode会向我显示错误但是一切都编译得很好。 它还阻止我使用关于此框架的自动完成。
我已经尝试清理和删除派生数据,但没有任何结果。
我的框架通过子模块包含在我的主项目中,并在我的主项目中手动链接。
对此有何想法?
答案 0 :(得分:1)
我的自定义Swift框架类:
public class Myfile {
public func textmethod(){
print("The value of textmethod")
}
}
我的ViewController文件:
import MyFrameWork
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let log = Myfile()
log.textmethod()
}
}
答案 1 :(得分:1)
我认为你的问题在于框架的搜索路径。我假设它现在为目标设置但不为项目设置(或在项目上设置不正确)。您只能为项目设置它,让Xcode处理目标路径。
Xcode有一个单独的编译过程,用于计算实际构建项目的编译过程中的自动完成引用。如果您不小心为目标设置了框架搜索路径而不是整个项目,那么您的项目似乎可以正常构建。 https://medium.com/@_achou/one-weird-trick-to-fix-autocomplete-in-xcode-9f19dc856944
解决方案1:修复项目 - 构建设置中的框架搜索路径。
解决方案2:从项目中删除框架,前往目标 - 构建阶段 - 嵌入式框架,单击 +(添加)然后添加其他并在您的目录中找到它。
答案 2 :(得分:0)
我最近发现了同样的问题。解决方案我发现我必须在模拟器中运行应用程序,然后xCode开始识别框架,从而获得自动完成功能..
试一试..!
答案 3 :(得分:0)
答案 4 :(得分:0)
你在这个项目中使用git吗?听起来很奇怪,我通过提交当前代码解决了类似的问题。
答案 5 :(得分:0)
我最近确实遇到了同样的问题。我通过在项目范围内将框架和标头搜索路径设置为非递归并直接指向没有子文件夹的正确目录来解决了该问题。然后,我的目标将从项目继承搜索路径。