eye*_*llz 10 ios cocoapods swift
我建立了两个框架的迅速,让我们给他们打电话CoreFramework和MyFramework
MyFramework在其公共方法中依赖CoreFramework并使用某些CoreFramework类,结构和枚举,例如:
public func fetchData() -> CoreStruct
Run Code Online (Sandbox Code Playgroud)
我为两个框架设置了podspec,我可以MyFramework在我的项目中用作pod.在我的项目中,我会写一些类似于:
let result = fetchData()
Run Code Online (Sandbox Code Playgroud)
这个编译和Xcode甚至在我点击变量时给我正确的类型,但如果我想明确指定result类似的类型:
let result: CoreStruct = fetchData()
Run Code Online (Sandbox Code Playgroud)
我收到编译错误,我必须导入 CoreFramework
我需要做什么,能够明确地使用像CoreStruct我的项目中的东西,而不必导入底层框架?
Swift 中没有办法让导入一个模块自动导入另一个模块。这是语言设计者\xe2\x80\x99 部分的有意识的选择,Swift 对此非常严格。
\n\n有一种叫做 \xe2\x80\x9cumbrella 框架\xe2\x80\x9d 的东西,它可以通过让你为多个子框架创建一个外观来实现你想要的功能,但苹果特别不鼓励你创建一个.
\n\n除此之外,您必须确保(在您的示例中)fetchData()和CoreStruct被编译到相同的框架中,您可以通过以下方式做到这一点:
MyFramework包含CoreFramework为 git 子模块,MyFramework构建(即作为 pod 发布,并将其包含在 podfile 中而不带选项,这样您就可以将一个工作区中的两个项目编译成一个框架),CoreFrameworkCoreFrameworkMyFramework use_frameworksMyFramework同一CoreFramework项目),\xe2\x80\xa6 或其他任何导致两个源代码树被编译到一个框架中的内容。
\n| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |