Lubić:
@interface ClassXXName(private)
- (void) xxxfunctions
@end
lub metody kategorii użytkownika?
Odpowiedzi:
3 dla odpowiedzi № 1@ interfejs Foo () tworzy rozszerzenie klasy (Istoją poprawione, rekwizyty do bbum) na interfejsie Foo, który jest jak dodatkowe metody dodane do interfejsu. Niektóre osoby używają również @interafce Foo (prywatne) (kategoria) zamiast rozszerzenia klasy za pomocą (). To bardziej przypomina „wstrzykiwanie” nowych metod do klasy spoza klasy.
Umieszczając to w.plik m po prostu powstrzymuje inne rzeczy przed „zobaczeniem” w pliku .h, ale to jest to. Zasadniczo ludzie zwykle używają kategorii lub rozszerzeń klas w plikach .m do określania prywatnych interfejsów, ale są również używane do takich rzeczy, jak UIKit kategorie, aby dodać publiczne metody wierszy i sekcji do NSIndexPath. (Może to być mylące).
Naprawdę nie musisz definiować prywatnych metodw ten sposób, ale jeśli masz metodę o nazwie bar, która wywołuje metodę foo, zanim foo zostanie zdefiniowane w pliku źródłowym, otrzymasz kompilator ostrzegający o tym, że „obiekt self może nie reagować na foo”. Możesz się tego pozbyć, definiując foo przed zdefiniowaniem kodu kreskowego lub innego kodu wywołującego foo. To samo z prostym C i funkcjami.
Jak mówi Ole, nie powstrzymuje to nikogowywołując metody prywatne, po prostu deklaruje zamiar bycia prywatnym i powoduje, że kompilator generuje ostrzeżenia „może nie odpowiadać”, nawet jeśli importuje plik .h.