【发布时间】:2014-08-05 16:48:28
【问题描述】:
“将 Swift 与 Cocoa 和 Objective C 结合使用”清楚地表明您应该为从 NSObject 继承的事物定义 isEquals,但是在此之后,我不确定何时需要编写它。它说:
“因为您可以将 Swift 对象(包括不是从 NSObject 派生的对象)传递给 Objective-C API,如果您希望 Objective-C API 比较对象的内容而不是比较对象的内容,则应该为这些类实现 isEqual: 方法而不是他们的身份。”
但是,我们怎么知道 Cocoa API 什么时候会使用 isEquals 方法呢?
【问题讨论】:
-
Cocoa API 在比较泛型时总是使用 isEqual 方法。例如:比较
NSString子类和id将使用 isEqual。