hej mam pewien problem
stworzylem sobie w klasie jakas tam funkcje i w niej chce wywolac inna ktora jest bezparametrowa i zwraca void'a.
Zastanawiam sie jak poprawnie ja wywolac, bo gdy uzywam [self funkcja]; dostaje ostrzezenie ze obiekt na rzecz ktorego wywoluje funkcje moze na nia nie odpowiedziec.
Bylbym wdzieczny gdyby ktos mogl powiedziec mi jak to poprawnie zrobic.
Pozdrawiam

problem z wywolaniem funkcji w funkcji
Rozpoczęty przez
izdum
, 10 mar 2011 14:31
5 odpowiedzi w tym temacie
#1
Napisano 10 marca 2011 - 14:31
#2
Napisano 10 marca 2011 - 15:11
Podaj kawałek kodu to będzie od razu wiadomo.
Kod klasy i jak tworzysz obiekt i wywołujesz metodę potem.
Bo przed chwilą zrobiłem test i działa dobrze bez żadnych warningów:
i potem utworzenie obiektu i wywołanie metody:
i dostaję ładny wynik:
Więc wszystko działa tak jak powinno.
Kod klasy i jak tworzysz obiekt i wywołujesz metodę potem.
Bo przed chwilą zrobiłem test i działa dobrze bez żadnych warningów:
@implementation ClassTest38 -(void) test1 { NSLog(@"test1"); [self test2]; } -(void) test2 { NSLog(@"test2"); } @end
i potem utworzenie obiektu i wywołanie metody:
ClassTest38 *c = [[ClassTest38 alloc] init]; [c test1];
i dostaję ładny wynik:
Program loaded. run [Switching to process 1379] 2011-03-10 15:13:33.484 lekcja5[1379:a0f] test1 2011-03-10 15:13:33.489 lekcja5[1379:a0f] test2 Running… Debugger stopped. Program exited with status value:0.
Więc wszystko działa tak jak powinno.
#3
Napisano 10 marca 2011 - 15:36
No mniej wiecej tak to u mnie wyglada, z tym wrzucaniem kodu to moze byc problem bo projekt jest dosyc rozbudowany i ciezko byloby wrzucic to co jest potrzebne, przynajmniej teraz juz wiem ze takie wywolanie na rzecz selfa jest poprawne. Dzieki za pomoc:)
#4
Napisano 10 marca 2011 - 18:58
Nie próbujesz wywoływać metody obiektu w metodzie klasy? Bo to jest zabronione.
Druga możliwość to, że Twoja funkcja jest zdefiniowana w kodzie niżej niż funkcja wywołująca, a nie jest umieszczona w interfejsie obiektu.
#5
Napisano 10 marca 2011 - 20:09
Rzeczywiscie z tego co widze, to zmiana kolejnosci zalatwila sprawe:) dzieki
#6
Napisano 10 marca 2011 - 20:29
Dobra rada, jeżeli metody wołają się nawzajem to umieszczaj je w interfejsie. Inaczej będziesz miał zawsze takie problemy, zwłaszcza jak postaną jakieś bardziej rozbudowane zależności pomiędzy nimi.
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych