类似类型:不能专门化非泛型定义

时间:2018-02-13 07:05:37

标签: ios swift realm reactive-swift

我有一个控制器,我需要导入两个pod。

import Realm
import ReactiveSwift

问题是两者都有一个名为Property的类型。

现在,如果我使用它导入两个pod,那么它会给我编译时错误Cannot specialize a non-generic definition

有关解决方法,

我创建了一个单独的文件并向控制器添加了扩展,只导入了Realm。并将ReactiveSwift保存在控制器文件中。这有助于我防止错误。但这是最好的方式吗?

2 个答案:

答案 0 :(得分:3)

为了让编译器能够决定您要使用哪个Property元素,您必须添加命名空间。在这种情况下:

  • Realm.Property使用Property
  • 中的Realm元素
  • ReactiveSwift.Property使用Property
  • 中的ReactiveSwift元素

答案 1 :(得分:0)

所以这里的问题是'属性'也可以在RealmSwift和ReactiveSwift中使用。

所以这里如果你想使用Realm属性,如上面的答案建议你 可以添加Realm.propertyReactiveSwift.Property来访问元素。

除此之外,您还可以制作 typealias ,还可以使用扩展名

将代码分成两个文件