Właśnie zaczyna się rozwój iPhone'a i Objective-C.Kiedy używać dwukropka z @selector
Wczoraj próbowałem addObserver do zawiadomienia w widoku z kopalni, a ja ciągle się ten błąd:
unrecognized selector sent to instance
I śledzone w dół na fakt, że muszę zawierać tyłu dwukropek do mojego Argument selektor:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
Dziś Myślałem, że jestem mądry, ponieważ podczas konfigurowania argument akcji do przycisku, przypomniałem sobie mój błąd wczoraj i dodał okrężnicy do argumentu działania. Argument akcji przyjmuje @selector, podobnie jak argument selektora podczas konfigurowania obserwatora dla NSNotification, więc pomyślałem, że robię to, co trzeba.
Jednak z następującego kodu:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
pojawia się dokładnie ten sam błąd:
unrecognized selector sent to instance
Co daje? Dlaczego jeden @selector wymaga końcowego dwukropka, a drugi nie? Jakie zasady należy przestrzegać, kiedy należy je uwzględnić i kiedy należy je wyłączyć, i dlaczego nie mogę zawsze zrobić jedno lub drugie?
Dzięki!
To dwukropek, a nie średnik. W każdym razie, jaki jest prototyp twojej metody 'nameOfMySelector:'? Jakiego argumentu chce? – BoltClock
Czy odnosisz się do tej samej metody w obu przypadkach? – BoltClock
Ha! Przeoczenie z mojej strony; Zmieniłem post, aby określić je jako dwukropek. – djibouti33