Obecnie uczę się programowania na obiektach C i iOS i utknąłem w niedziałającym kodzie z powodu tego subtelnego błędu przez godzinę. Rozważmy następujący kod:Pusta nazwa metody, co to właściwie robi?
@property (strong, nonatomic) NSString *name;
- (NSString *):name { return @"Some name"; }
na pierwszy rzut oka (i dla każdego nowego) to wygląda jak zastąpionej getter dla właściwości name
. Ale tam jest bardzo subtelny, którego nie powinno tam być. Nie dostajesz ostrzeżenia/błędu z kompilatora/parsera/środowiska wykonawczego tutaj, więc moje pytanie brzmi: co to właściwie kończy się jako?
Próbowałem wymyślić sposób wywoływania tej metody, gdy zobaczyłem błąd, ale nie udało mi się wykonać kilku moich prób.
+1, po prostu dla 'Gdybyś wymawiał nazwę tej metody, można by ją nazwać ... dwukropkiem. – Perception
Właściwie nazwa metody to "pusty ciąg znaków". Kiedy mówisz o nazwach metod, ogólnie nie mówisz o dwukropkach, nawet jeśli są tam ... mylące, wiem ... ale to jest trochę jak "," w języku angielskim. Przerwa lub złącze, ale nie mówione. – bbum
@bbum W rzeczywistości Apple twierdzi, że oficjalnym sposobem na wypowiedzenie metody jest powiedzenie wszystkich dwukropków. Przeglądanie linii w dokumentach już teraz ... –