2011-07-04 4 views

Odpowiedz

20

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 
+7

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

+0

@bbum - tak, na pewno tak jest. Zaktualizuję odpowiedź, aby była bardziej przejrzysta. – sosborn

+2

Ale myślę, że prawdziwe pytanie tutaj jest, czy zawiera objectObject: również używa isEqual: do ustalenia wyniku, czy używa isIdenticalToObject :. –