isEqual:isEqualToString:之间有什么区别?

为什么类要添加isEqualTo*方法(NSArray的isEqualToArray,NSData的isEqualToData,…)而不是仅仅覆盖isEqual:

推荐答案

isEqual:将字符串与对象进行比较,如果对象不是字符串,则返回NO.如果您知道两个对象都是字符串,isEqualToString:会更快,正如documentation所述:

Special Considerations

当您知道两个对象都是字符串时,此方法比isEqual:更快地判断相等性.

isEqualTo<Class>用于提供平等性的具体判断.例如;isEqualToArray:判断数组是否包含相同数量的对象,以及给定索引处的对象在isEqual:测试中是否返回YES.

Objective-c相关问答推荐

在我的 UIImageView 的子类中没有调用 drawRect

防止其他程序员调用 -init 的最佳方法

单元测试私有方法 - 目标 C

Objective C const NSString * vs NSString * const

如何测试推送通知在我的应用程序中是否有效

在 Cocoa 中你更喜欢 NSInteger 还是 int,为什么?

从 UIPageViewController 中移除视图控制器

如何四舍五入浮点值?

在 NSString 对象中查找子字符串

无法在 Interface Builder (Xcode 5) 中创建与子视图的出口连接

首次提交应用内购买以供审核

无法加载 xcode 项目,因为它已从另一个项目或工作区打开

从 iPhone 设备查找当前国家

AVAssetImageGenerator 提供旋转的图像

-[MyClassName copyWithZone:] 无法识别的 Select 器发送到实例

导航返回时重新加载 UITableView?

创建 NSTextField标签的示例代码?

如何将 UITableView 滚动到特定位置

如何定义 UIColor 的常量值?

如何在 iOS 中创建自定义 UIActivity?