【问题标题】:Difference between containsObject: and member: methods of NSSet?NSSet 的 containsObject: 和 member: 方法之间的区别?
【发布时间】:2011-09-27 20:22:30
【问题描述】:

这两个属于NSSet类的方法有什么区别:

-(BOOL)containsObject:(id)anObject
-(id)member:(id)object 

【问题讨论】:

    标签: iphone ios objective-c foundation


    【解决方案1】:

    答案在于返回值。 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: 到参数的对象,则将返回集合的对象。
    • @bbum - 是的,绝对是这样。我会更新答案以使其更清楚。
    • 但是认为这里真正的问题是 containsObject: 是否也使用 isEqual: 来确定结果,还是使用 isIdenticalToObject:.
    • @AvrahamShukron containsObject 实际上使用 isEqual: 如果底层类实现了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    相关资源
    最近更新 更多