Skocz do zawartości

Witaj!

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

Zdjęcie
- - - - -

problem z wywolaniem funkcji w funkcji


  • Zaloguj się, aby dodać odpowiedź
5 odpowiedzi w tym temacie

#1 izdum

izdum
  • 135 postów

Napisano 10 marca 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

  • 9 873 postów

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:


@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 postów

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 wojtkow

wojtkow


  • 6 767 postów
  • Płeć:
  • SkądPoznań

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 izdum

izdum
  • 135 postów

Napisano 10 marca 2011 - 20:09

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

#6 wojtkow

wojtkow


  • 6 767 postów
  • Płeć:
  • SkądPoznań

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