【发布时间】:2011-09-27 20:22:30
【问题描述】:
这两个属于NSSet类的方法有什么区别:
-(BOOL)containsObject:(id)anObject
-(id)member:(id)object
【问题讨论】:
标签: iphone ios objective-c foundation
这两个属于NSSet类的方法有什么区别:
-(BOOL)containsObject:(id)anObject
-(id)member:(id)object
【问题讨论】:
标签: iphone ios objective-c foundation
答案在于返回值。 containsObject 返回 YES 或 NO,具体取决于您发送的对象是否属于该特定集合。
member 返回 id,这意味着如果该对象是集合的一部分,则它返回实际对象。
作为一个例子,你有一个 NSSet,aSet,和一个Object。 anObject 属于该集合。
[aSet containsObject:anObject]; //returns YES
[aSet member:anObject]; //If the set contains an object equal to object (as determined by isEqual:) then that object (typically this will be object), otherwise nil.
如果一个Object在aSet中不存在:
[aSet containsObject:anObject]; //return NO
[aSet member:anObject]; //return nil
【讨论】:
member: 的返回值可能不会是anObject。也就是说,如果集合中包含isEqual: 到参数的对象,则将返回集合的对象。