Skocz do zawartości

Witaj!

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

Zdjęcie
- - - - -

Metoda statyczna i zwracanie utworzonego w niej obiektu


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

#1 macsurf

macsurf
  • 104 postów
  • SkądKołobrzeg

Napisano 13 czerwca 2013 - 17:01

Mam problem ze zwróconym obiektem z metody statycznej. Metoda tworzy obiekt klasy z której została wywołana ale już metod z utworzonego obiektu nie można wywołać. Nie mam pojęcia dlaczego nie działa w innych językach takie coś to nie problem a tutaj komplikacje jak zwykle :/
Kombinowałem chyba ze wszystkich możliwościami, tym bardziej że to Singleton.

@implementation myPrint

static myPrint* myobject = nil;

+(myPrint *) create
{
    @synchronized(self) {
    if(myobject == nil) {
    myobject = [[self alloc]init];
    }
    }
    
        return myobject;
    
    
    
}

-(void) anyText {
    
  NSLog(@"txt");
}

@end


#2 metal_man

metal_man
  • 489 postów
  • SkądChorzów

Napisano 16 czerwca 2013 - 10:45

Ale nie widzę żadnego problemu. Poniższy kod nie ma prawa nie działać:

#import <Foundation/Foundation.h>

@interface Test : NSObject

@property (strong, nonatomic) NSString *myTestText;

+(Test *)myTest;
-(NSString *)returnTestMessage;

@end

Oraz implementacja klasy:

@implementation Test

@synthesize myTestText;

+(Test *)myTest
{
    static Test *myTest = nil;
    
    @synchronized(self)
    {
        if (!myTest)
            myTest = [[Test alloc] init];
        
        NSString *a = myTest.returnTestMessage;
        return myTest;
    }
}

-(id)init
{
    if (self = [super init]) {
        myTestText = @"Wiadomość testowa";
    }
    
    return self;
}

-(NSString *)returnTestMessage
{
    return @"blablabla";
}

@end

I wszystko śmiga :) Tworzysz obiekt i go używasz. Dostęp do zmiennych jest taki jaki trzeba. Ewentualnie napisz dokładniej co jest nie tak.




Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych