Odpowiedz na ten temat
Pokaż wyniki od 1 do 6 z 6

  1. Dołączył
    May 2010
    Postów
    97

    Cytuj | #1

    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
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4


  2. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #2

    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:

    Kod:
    @implementation ClassTest38
    
    -(void) test1
    {
    	NSLog(@"test1");
    	[self test2];
    }
    
    -(void) test2
    {
    	NSLog(@"test2");
    }
    @end
    i potem utworzenie obiektu i wywołanie metody:

    Kod:
    ClassTest38 *c = [[ClassTest38 alloc] init];
    [c test1];
    i dostaję ładny wynik:
    Kod:
    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.
    Ostatnio edytowane przez macieks72 ; 10.03.2011 o 14:15
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.


  3. Dołączył
    May 2010
    Postów
    97

    Cytuj | #3

    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
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4

  4. Avatar wojtkow SM? Tylko S...


    Dołączył
    May 2007
    Skąd
    Poznań
    Postów
    3,620

    Cytuj | #4

    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.
    Komputer: MBA 11.6" i7 1.8GHz 4GB RAM 256GB SSD, iMac 27" i7 2.8GHz 8GB RAM 240 GB SSD + 1 TB HDD
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4
    Tablet: iPad (2012) 4G, iPad WiFi
    Moje programy w AppStore:
    iOS => Project Planner | Project Planner HD
    OSX => Project Planner Viewer
    Zgodnie z regulaminem nie udzielam porad poprzez PW - masz pytanie, pytaj na forum.


  5. Dołączył
    May 2010
    Postów
    97

    Cytuj | #5

    Rzeczywiscie z tego co widze, to zmiana kolejnosci zalatwila sprawe dzieki
    Komputer: MacBook pro 15" 2010
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4

  6. Avatar wojtkow SM? Tylko S...


    Dołączył
    May 2007
    Skąd
    Poznań
    Postów
    3,620

    Cytuj | #6

    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.
    Komputer: MBA 11.6" i7 1.8GHz 4GB RAM 256GB SSD, iMac 27" i7 2.8GHz 8GB RAM 240 GB SSD + 1 TB HDD
    Telefon: iPhone 4
    Odtwarzacz: iPhone 4
    Tablet: iPad (2012) 4G, iPad WiFi
    Moje programy w AppStore:
    iOS => Project Planner | Project Planner HD
    OSX => Project Planner Viewer
    Zgodnie z regulaminem nie udzielam porad poprzez PW - masz pytanie, pytaj na forum.

Odpowiedz na ten temat