当命名空间有另一个与命名空间同名的类时,有没有办法将类/枚举与命名空间一起使用?

时间:2020-12-29 09:10:02

标签: swift

首先,我知道,问题的标题有点别扭。

我的应用程序中有一个名为 UserState

的枚举
enum UserState {
  ...
}

我正在尝试在我的应用程序中使用 AWSMobileClient 库,但它还有另一个名为 UserState 的枚举,我正在尝试使用命名空间方式。

import AWSMobileClient
...
var foo: AWSMobileClient.UserState?

但是我收到一个错误,因为在 AWSMobileClient 命名空间中有一个名为 AWSMobileClient 的类。 error details

我可以更喜欢只导入枚举而不是所有命名空间,但我还需要在同一个文件中使用 AWSMobileClient 类。

我还找到了使用 UserState 的肮脏解决方案,例如在不同的文件中定义类型别名。

在 A.swift

import enum AWSMobileClient.UserState

typealias AWSUserState = AWSMobileClient.UserState

在 B.swift

import AWSMobileClient
...
var foo: AWSUserState? // this works

但是对于这个问题应该有更好的解决方案。

0 个答案:

没有答案