Przy wywołaniu metody używamwywołanie metody w Xcode
[self methodname];
problem mam jest w xCode
dostaję mnóstwo ostrzeżeń! Mówi się: "*xxxappdelegate.app may not respond to methodname*"
.
Czy istnieje lepszy sposób wywoływania metod?
Przy wywołaniu metody używamwywołanie metody w Xcode
[self methodname];
problem mam jest w xCode
dostaję mnóstwo ostrzeżeń! Mówi się: "*xxxappdelegate.app may not respond to methodname*"
.
Czy istnieje lepszy sposób wywoływania metod?
Jeśli masz ten ostrzeżenie oznacza to, że albo:
Dzięki, Znowu zajrzę do mojego pliku .h ponownie :) – user370507
Te ostrzeżenia oznaczają po prostu, że kompilator nie wie, czy dana klasa ma metodę, którą lling. Upewnij się, że wywoływana metoda jest zdefiniowana powyżej miejsca w pliku .m, którego używasz, lub zadeklaruj metodę u góry pliku.
@implemention A
-(void)blah
{
[self foo]; // warning!
}
-(void)foo
{
[self blah]; // no warning
}
@end
Dzięki za to, :) – user370507
Aby tego uniknąć, zadeklaruj metodę w pliku .h. – Nishant
Dodaj methodname
do @interface
dla klasy, xxxappdelegate w swoim przykładzie. Lub po prostu upewnij się, że implementacja methodname
jest wcześniejsza niż miejsce, do którego wywołujesz ją w pliku.
Dziękujemy za pomoc :) – user370507
Istnieje coś, co nazywa się porządkiem kompilacji. Gdy wywołujesz metodę foo
, nie jest ona jeszcze zdefiniowana, jednak po wywołaniu metody blah
jest zdefiniowana tylko w górnej linii.
bardziej szczegółowe:
cout << a;
string a = "hello";
Kiedy to zrobisz dostaniesz błąd niezdefiniowanej zmiennej "a". Co należy zrobić, to:
string a = "hello";
cout << a;
Jeśli plik .h ma metoda zadeklarowana nie może być jakiś problem związany z xcodes niezdolność do indeksu, aby rozwiązać ten przejść do preferencji i usunąć archiwów i innych przechowywanych danych.
Nie będę * zawsze * używał 'self'. –