Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniaOstatnia
Pokaż wyniki od 1 do 10 z 15
  1. Avatar betrax
    Dołączył
    Aug 2008
    Skąd
    Warszawa
    Postów
    89

    Cytuj | #1

    Z racji, że kod mojej gry robi się już bardzo długi chciałbym część funkcji( zwykle funkcje void) umieścić w innym pliku. Czy jest możliwe wykonanie czegoś takiego( jeżeli tak, to byłbym wdzięczny za wyjaśnienie tego rozwiązania)?
    Komputer: Alu iMac 20" 2.4
    Odtwarzacz: iPod Touch


  2. Avatar wojtkow SM? Tylko S...


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

    Cytuj | #2

    Cosik kombinujesz . Rozumiem, że są to metody obiektów / klas?
    Jeżeli tak to możesz użyć mechanizmu Kategorii i rozszerzeń
    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.

  3. JKK
    Mężczyzna JKK jest offline
    Avatar JKK
    Dołączył
    Jan 2008
    Skąd
    Osolin
    Postów
    400

    Cytuj | #3

    Nie wiem na ile to poprawne, ale ja sobie w paru programach zrobiłem klasę Funkcje i w niej mam metody klasy, które np. formatowały dane. No i działa mi to poprawnie w paru App Storowych aplikacjach.
    Importowałem sobie tą klasę i wykonywałem na niej jej metody klasy np. NSString *DzienMiesiac = [Funkcje zaformatujDate:data jak:1];
    Ale ja wychowałem się na BASIC, C (bez znaczków) i asemblerze motoroli 68k Więc pewnie i GO TO wymyślę jak zrobić w ObcC za co puryści wykonają na mnie metodę [JKK zastrzelNaSmierc:YES]
    No ale ostatnio doceniłem obiektowość (zwłaszcza w Puzzlach i Sarence), gdzie puzelki i mordki są obiektami tak samo jak dym z lokomotywy i wagony
    Ostatnio edytowane przez JKK ; 28.12.2010 o 21:15
    Komputer: MacBook C2D 2,16GHz; iBook G3 600
    Telefon: iPhone 3GS 16GB White
    Tablet: iPad WiFi 32GB
    WWW: http://macwyznawca.pl/
    MacWyznawca i Apple Fanboy!
    Moje programy na iPhone i iPad'a | Na Mac OS: Faqt - Faktury na Mac OS.

  4. Avatar betrax
    Dołączył
    Aug 2008
    Skąd
    Warszawa
    Postów
    89

    Cytuj | #4

    Cytat Napisał wojtkow Zobacz post
    Cosik kombinujesz . Rozumiem, że są to metody obiektów / klas?
    Jeżeli tak to możesz użyć mechanizmu Kategorii i rozszerzeń
    Nie( przynajmniej tak mi się wydaje ), zwykłe funkcje które sobie wiszą w warstwie.
    Przykładowo

    Kod:
    @implementation IntroScene
    
    -(id) init
    {
    	if( (self=[super init] )) {
    
    		
    	}
    	return self;
    }
    
    -(void)iOtoJestFunkcja{
    }
    @end
    Komputer: Alu iMac 20" 2.4
    Odtwarzacz: iPod Touch

  5. Avatar wojtkow SM? Tylko S...


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

    Cytuj | #5

    @JKK - ja preferuję użycie
    Kod:
    [self addBanTo:JKK for:life];


    @betrax - nie rozumiem co nie? Nie kombinujesz, czy nie użyjesz tego mechanizmu?
    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.

  6. Avatar betrax
    Dołączył
    Aug 2008
    Skąd
    Warszawa
    Postów
    89

    Cytuj | #6

    Nie są metodami klas. A co do mechanizmu, to zaraz się temu przyjrzę.
    Komputer: Alu iMac 20" 2.4
    Odtwarzacz: iPod Touch

  7. Avatar macieks72

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

    Cytuj | #7

    Nie klas, a są metodami obiektów, klasowe to chyba w objc z "+" na początku.

    Co znaczy zwykłe "funkcje co sobie wiszą w klasie"?

    Ale ja za bardzo chyba nie rozumiem o co tobie chodzi.
    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'.

  8. Avatar betrax
    Dołączył
    Aug 2008
    Skąd
    Warszawa
    Postów
    89

    Cytuj | #8

    To tak, przykładowy plik .mm:

    Kod:
    #import "IntroScene.h"
    
    @implementation IntroScene
    +(id) scene
    {
    	CCScene *scene = [CCScene node];
        IntroScene *layer = [IntroScene node];
    	[scene addChild: layer z:-1];
        return scene;
    }
    
    
    -(id) init
    {
    	if( (self=[super init] )) {
    		
    	}
    	return self;
    }
    -(void)funkcja
    {
    NSLog(@"Sth");
    }
    - (void) dealloc
    {	
    	
    	[self removeAllChildrenWithCleanup: YES];
    	[super dealloc];
    }
    @end
    I teraz chciałbym wyciągnąć funkcję o nazwie "funkcja" i wsadzić ją do innego pliku żeby nie zajmowała miejsca w tym.
    Komputer: Alu iMac 20" 2.4
    Odtwarzacz: iPod Touch

  9. Avatar wojtkow SM? Tylko S...


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

    Cytuj | #9

    Dwie sprawy:
    1. W objective c nie ma mechanizmu partial class (nie znam polskiego terminu, sorry), więc użycie "kategorii i rozszerzeń" to jedyna metoda
    2. Wbrew pozorom pogorszysz sobie czytelność kodu, bo będziesz miał rozrzucony go do wielu plików i ciężko będzie coś znaleźć.
    Może lepiej używaj sekwencji makr pragma:
    Kod:
    #pragma mark -
    #pragma mark Label
    do dzielenia kodu na sekcje i zwijaj kod w nieużywanych sekcjach (szkoda, że nie można zwinąć całej sekcji, jak regionu w .Net)
    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.

  10. Avatar betrax
    Dołączył
    Aug 2008
    Skąd
    Warszawa
    Postów
    89

    Tak w odpowiedzi na post, który był... a teraz nie ma.
    Ponieważ jak linijki kodu liczy się już w tys. to praca na tym kodzie robi się trochę trudna i zostaje zwijanie funkcji.
    A co do złych założeń to rzeczywiście były bardzo błędne, ale gdybym wiedział to co teraz gdy zaczynałem, to trochę inaczej bym to pisał, ale już następny projekt spróbuje zrealizować jak trzeba.
    Dziękuję za pomoc
    Ostatnio edytowane przez betrax ; 28.12.2010 o 22:51
    Komputer: Alu iMac 20" 2.4
    Odtwarzacz: iPod Touch

Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniaOstatnia