Jump to content

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Photo
- - - - -

problem z wywolaniem funkcji w funkcji


  • Please log in to reply
5 replies to this topic

#1 izdum

izdum
  • 135 posts

Posted 10 March 2011 - 14:31

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

#2 macieks72

macieks72

  • 9873 posts

Posted 10 March 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:


@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 izdum

izdum
  • 135 posts

Posted 10 March 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 wojtkow

wojtkow


  • 6767 posts
  • Płeć:
  • SkądPoznań

Posted 10 March 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 izdum

izdum
  • 135 posts

Posted 10 March 2011 - 20:09

Rzeczywiscie z tego co widze, to zmiana kolejnosci zalatwila sprawe:) dzieki

#6 wojtkow

wojtkow


  • 6767 posts
  • Płeć:
  • SkądPoznań

Posted 10 March 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.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users