【发布时间】:2017-10-15 20:01:10
【问题描述】:
我想让AnyClass(又名AnyObject.Type)符合Equatable,这样当我有一个包含AnyClass元素(Array<AnyClass>)的数组时,我可以调用remove(Element:),但这需要Element 符合Equatable。
【问题讨论】:
-
见stackoverflow.com/questions/24938948/…(实际上可能是重复的)。
-
@rmaddy 不,这是一个特定于编译器不允许对
AnyClass进行扩展的问题,因此,AnyClass不可能符合Equatable为在您提供的线程中使用 -
在您花费更多精力来完成之前,请考虑您是否可以找到受影响类的共同点,例如协议。这种 AnyClass / AnyObject 假泛型 比找到共同点还要糟糕。
-
比较Make a Swift dictionary where the key is “Type”?——你可以为此构建一个包装器类型(或者只使用
.filter {$0 != someMetatype})。尽管如此,我还是想知道[AnyClass]的使用——你到底想完成什么? -
@Hamish 我将一组唯一键映射到一组与这些键相关的类。例如:
["public.php" : [CodeEditor.self, TextEditor.self, WebViewer.self]].
标签: swift comparable equatable