我在swift项目中遇到了模块名称间距的问题.
我在一个新项目中试过这个,一切正常:
我有2个模块,其中包含相同的类名,我可以Module.Class毫无问题地引用该类.
我有一个现有的快速项目,我无法让这个工作.我一直在收到错误
因此,你可以看到我是否不尝试Module-Scope类,一切正常.
(是的,我已尝试过并且没有.Type添加).
所以我假设我的编译器设置中有一些东西.我唯一能想到的是我的LocationMessage类不是在主DataManager"类"文件中定义的,而是在不同的文件中定义的.
但我真的无法做出正面或反面的事情.有什么建议?
框架:DataManager
框架:ReferenceTest
所以我的问题是,File.swift我想引用定义一个类LocationMessages.swift里面DataManager.framework 的类IS公众
@objc(DMLocationMessage)
final public class LocationMessage : ParsedMessage {
Run Code Online (Sandbox Code Playgroud)
Ant*_*ton 20
swift编译器中也存在这个错误:不同文件中的SR-631扩展不能互相识别
编译的结果(成功/失败)取决于" 构建阶段">"编译源"设置中的文件顺序.
我有完全相同的错误消息:X不是Y的成员类型.通过重新安排编译源解决了这个问题.
如果使用xcframework,请按照以下步骤消除错误:
找 。-name "*.swiftinterface" -exec sed -i -e 's/frameworkName\.//g' {} \;
上述错误仅发生在 xcframework 中,当类名与模块名相同时。有关 Apple 论坛的详细信息,请访问:https : //forums.developer.apple.com/thread/123253
您class/struct/enum DataManager的代码中可能有一个隐藏DataManager模块的地方。该错误表明它找不到应LocationManager在何处读取模块的类型 。DataManager
您的应用程序模块的设计方式应使您无需除import语句外就显式使用模块的名称。因此,LocationMessage.Type无需说明模块即可直接使用。
这是我们所有应用程序模块都以开头的原因之一X,例如XDataManager。这样可以避免与Apple的模块,外部模块(例如CocoaPods的模块)和类型(例如您的情况)发生冲突。
这X也很明显,这些模块是应用程序本身的一部分,而不是某些第三方框架。
| 归档时间: |
|
| 查看次数: |
4317 次 |
| 最近记录: |