Swift中导入模块名与内部类名重名的代码处理方案咨询
解决Swift中模块名与内部类重名的调用问题
当导入的模块名和自定义内部类同名时,编译器会优先使用当前作用域内的类型,导致无法直接引用外部模块的同名类型。针对你的代码,有两种可行方案:
方案一:用模块名显式限定外部类型
直接在调用时通过「模块名.类型名」的方式明确指定要使用外部模块的AAA类,绕过本地类的命名冲突:
import AAA extension Integrations { class AAA { class func setup(id: String) { AAA.AAA.instance.setExternalUserId(id) // 模块名AAA + 类名AAA,明确指向外部模块的类型 } } }
方案二:导入模块时重命名
如果觉得方案一的写法不够直观,可以在导入模块时给它起一个别名,避免和本地类混淆:
import AAA as ExternalAAA // 给外部模块起别名 extension Integrations { class AAA { class func setup(id: String) { ExternalAAA.AAA.instance.setExternalUserId(id) // 通过别名调用外部模块的类型 } } }
两种方案都不需要修改你的内部类名称,满足你保持名称一致的需求。
内容的提问来源于stack exchange,提问作者EvGeniy Ilyin
相关产品推荐
相关产品推荐

