Jaki jest diference między tymi dwiema metodami należącymi do klasy NSSet:Różnica między containsObject: a member: methods of NSSet?
-(BOOL)containsObject:(id)anObject
-(id)member:(id)object
Jaki jest diference między tymi dwiema metodami należącymi do klasy NSSet:Różnica między containsObject: a member: methods of NSSet?
-(BOOL)containsObject:(id)anObject
-(id)member:(id)object
Odpowiedź leży w wartości zwracanej. containsObject zwraca TAK lub NIE w zależności od tego, czy wysyłany obiekt należy do tego konkretnego zestawu.
element zwraca id, co oznacza, że zwraca rzeczywisty obiekt, jeśli ten obiekt jest częścią zestawu.
Jako przykład masz NSSet, aSet, z anObject. anObject należy do zestawu.
[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.
Jeśli jakisObiekt nie istnieje w ASET:
[aSet containsObject:anObject]; //return NO
[aSet member:anObject]; //return nil
Założę się, że wartość zwracana '' użytkownika: * nie * może być 'anObject'. Oznacza to, że jeśli zestaw zawiera obiekt, który "isEqual:" do argumentu, obiekt zestawu zostanie zwrócony. – bbum
@bbum - tak, na pewno tak jest. Zaktualizuję odpowiedź, aby była bardziej przejrzysta. – sosborn
Ale myślę, że prawdziwe pytanie tutaj jest, czy zawiera objectObject: również używa isEqual: do ustalenia wyniku, czy używa isIdenticalToObject :. –