[英]ios: NSArray containsObject: NSIndexPath
我对NSArray containsObject方法有些困惑。 此方法是否比较指向对象的指针或对象的确切内容? 更具体地说:我之前在某个地方创建了一个NSIndexPath对象数组,现在我要检查是否存在一个NSIndexPath对象,该对象的row = 2和section =1。如果我编写以下代码,是否可以工作?
[[self arrayOfPathes] containsObject: [NSIndexPath indexPathForItem: 2 inSection: 1]];
我已经测试了该代码,并且对我有用,但是我事先对指针而不是对象的内容进行比较有不好的经验(顺便说一句,该代码对我有用,并且已被批准用于应用商店,但后来有很多用户报告有关它造成的错误)。
您是否尝试过在文档中查找NSArray方法containsObject? 它说:
该方法通过向每个数组对象发送isEqual:消息(并将anObject作为参数传递给每个isEqual:消息)来确定anObject是否存在于数组中。
因此,如果有问题的对象实现isEqual来比较对象的设置而不是比较地址,则它将起作用。
NSIndexPath上的文档没有告诉您是否实现了isEqual方法的自定义实现,但我想它确实实现了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.