我正在使用Firebase在Swift 3中编写应用程序。我创建了自己的名为User
的班级。我想同时使用该课程和Firebase的User
课程。 Firebase的User
类过去被称为FIRUser
,但在Firebase 4中重命名(即FIRUser.h
FIR_SWIFT_NAME(User)
)。
现在我不知道如何独立使用每个。每当我使用User
时,我的代码都会认为我正在谈论我的User
类(这是有道理的)。但是,当我无法再使用User
时,如何引用Firebase的FIRUser
课程呢?
答案 0 :(得分:2)
升级到 Firebase 4 时,我遇到了完全相同的问题;)我做了MacLean回答已经提出的建议但是选择了项目范围的解决方案。
在Firebase.swift
文件中,我添加了以下typealias
:
//
// Firebase.swift
//
import FirebaseAuth
/// Class `FirebaseAuth.User` conflicts with `MyApp.User`.
typealias AuthUser = FirebaseAuth.User
然后,在项目的其他地方,我只使用AuthUser
使用Firebase类,而User
只使用我自己的类型。上述typealias
具有internal
可见性,因此可在您的应用代码中使用。
根据您的代码库大小,这可能比使用每个文件解决方案提供更好的权衡。
答案 1 :(得分:1)
您实际上只需import class User
,这将使文件中User
以后的所有引用都引用您导入的文件。
如果你想改变一个类在一个文件中被调用的方式,你也可能在其中一个上使用typealias
。
一般情况下,最好将User
类重命名为更具体的类,但遗憾的是:<