环境:
Swift>=2.3,Swift应用程序中的Swift框架
设置:
例如,一个具有模块名称的快速动态框架
APIService.framework
它有一个public class APIService.swift并且
具有静态功能。
它还有一个public class Item.swift
使用APIService.framework
应用程序可以使用框架,如APIService.function()
应用程序还有一个class Item.swift
如果应用程序需要引用框架的项类,它必须执行APIService.Item操作,但是由于apiservice是框架内的一个类,编译器总是试图在apiservice类内而不是在apiservice模块内查找属性,因此抛出一个错误

'Item' is not a member type of 'APIService'

可能的解决方案:
将框架的模块名更改为类以外的其他名称
姓名。
将类名更改为模块名以外的其他名称。
将“item”静态属性放入指向
框架中的项类。
所有这些都只是解决方法,真正的问题是编译器无法区分模块名和类名。我们有没有什么可以让我迅速说出来的?

最佳答案

基于this answer,您似乎可以直接从模块导入单个类型来解决此问题。

import class APIService.Item

然后,您可以直接引用Item而不会产生混淆。
关键字(至少)在这种情况下起作用。

09-07 12:02