我在swift项目中遇到了模块名称间距的问题.
我在一个新项目中试过这个,一切正常:
我有2个模块,其中包含相同的类名,我可以Module.Class
毫无问题地引用该类.
我有一个现有的快速项目,我无法让这个工作.我一直在收到错误
因此,你可以看到我是否不尝试Module-Scope类,一切正常.
(是的,我已尝试过并且没有.Type
添加).
所以我假设我的编译器设置中有一些东西.我唯一能想到的是我的LocationMessage类不是在主DataManager"类"文件中定义的,而是在不同的文件中定义的.
但我真的无法做出正面或反面的事情.有什么建议?
框架:DataManager
DataManager.swift
LocationMessages.swift
框架:ReferenceTest
File.swift
所以我的问题是,File.swift
我想引用定义一个类LocationMessages.swift
里面DataManager.framework
的类IS公众
@objc(DMLocationMessage) final public class LocationMessage : ParsedMessage {
小智.. 20
swift编译器中也存在这个错误:不同文件中的SR-631扩展不能互相识别
编译的结果(成功/失败)取决于" 构建阶段">"编译源"设置中的文件顺序.
我有完全相同的错误消息:X不是Y的成员类型.通过重新安排编译源解决了这个问题.
swift编译器中也存在这个错误:不同文件中的SR-631扩展不能互相识别
编译的结果(成功/失败)取决于" 构建阶段">"编译源"设置中的文件顺序.
我有完全相同的错误消息:X不是Y的成员类型.通过重新安排编译源解决了这个问题.
您class/struct/enum DataManager
的代码中可能有一个隐藏DataManager
模块的地方。该错误表明它找不到应LocationManager
在何处读取模块的类型 。DataManager
您的应用程序模块的设计方式应使您无需除import
语句外就显式使用模块的名称。因此,LocationMessage.Type
无需说明模块即可直接使用。
这是我们所有应用程序模块都以开头的原因之一X
,例如XDataManager
。这样可以避免与Apple的模块,外部模块(例如CocoaPods的模块)和类型(例如您的情况)发生冲突。
这X
也很明显,这些模块是应用程序本身的一部分,而不是某些第三方框架。