首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift解决办法使`AnyObject.Type`符合` `Equatable`‘?

Swift解决办法使`AnyObject.Type`符合` `Equatable`‘?
EN

Stack Overflow用户
提问于 2017-05-17 00:10:21
回答 2查看 448关注 0票数 0

我想让AnyClass (又称AnyObject.Type)符合Equatable,这样当我有一个带有AnyClass元素(Array<AnyClass>)的数组时,我可以调用remove(Element:),但这需要Element符合Equatable

EN

回答 2

Stack Overflow用户

发布于 2017-05-17 00:34:29

我真的不认为你试图获得的东西是可能的,或者你是否应该尝试用这种方式去做。

类通常代表现实世界的对象,无论这是一辆汽车,一个视图或完全不同的东西。所以很难说我创建的任何自定义类和我创建的其他自定义类是一样的。

斯威夫特只是不知道如何比较它们,是什么让它们相同。

要在这里实现您想要的功能,最简单的方法是定义一个自定义协议/接口,该协议/接口表示您将在此应用程序中使用的类的泛型版本,然后确保每个协议/接口都符合该协议/接口,并且是可等同的。然后,您应该能够执行以下操作:

代码语言:javascript
复制
var objs = Array<MyAppClassesProtocol>() 

还可以使用remove(element:)

票数 1
EN

Stack Overflow用户

发布于 2017-09-28 06:52:42

从Swift 3开始,你可以使用AnyHashable作为AnyObject的替代品。它表示符合Equatable协议的任何值。

而不是

代码语言:javascript
复制
var array:[AnyObject] = []

只需写

代码语言:javascript
复制
var array:[AnyHashable] = []
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44006522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档