2012-01-02 9 views

Odpowiedz

7

nie jestem programista Ruby, więc może brakować czegoś subtelnego, ale wydaje się, że andand czyni go tak, że można bezpiecznie wywołuje metodę łańcucha nawet gdy jedno wywołanie metoda może zwrócić zero. Jest to wbudowane w Objective-C, ponieważ wywoływanie metod na (właściwie właściwie nazywane wysyłaniem wiadomości) jest bezpieczne i całkowicie dopuszczalne. Wiadomości do zera zawsze zwracają zero, a w zasadzie nie są opcjami. W Objective-C, to jest w porządku:

id foo = [someObject objectByDoingSomething]; // foo might be nil 

id bar = [foo objectByDoingSomethingElse]; 

// If foo is nil, calling objectByDoingSomethingElse is essentially 
// a no-op and returns nil, so bar will be nil 
NSLog(@"foo: %@ bar: %@", foo, bar); 

Dlatego to też jest w porządku, nawet jeśli objectByDoingSomething może zwrócić nil:

id foo = [[someObject objectByDoingSomething] objectByDoingSomethingElse]; 

Od The Objective-C Programming Language: „w Objective-C, to jest ważne, aby wysłać komunikat do zera - po prostu nie ma wpływu na środowisko wykonawcze. " Ten dokument zawiera więcej szczegółów na temat zachowania metod wywoływania na zero w Objective-C.

Powiązane problemy