Как проверить, доступен ли игровой центр? - PullRequest
0 голосов
/ 26 мая 2011

Я только что реализовал поддержку игрового центра в своем приложении, как описано здесь Как создать простую многопользовательскую игру с помощью Учебного центра Game Center: Часть 1/2 .

Реализуется как синглтон. В моем приложении делегат:

    // At the end of applicationDidFinishLaunching, right before 
    // the last line that calls runWithScene:
    [[GCHelper sharedInstance] authenticateLocalUser];

Небольшой обзор методов и атрибутов:

@interface GCHelper : NSObject {
    BOOL gameCenterAvailable;
    BOOL userAuthenticated;
}

@property (assign, readonly) BOOL gameCenterAvailable;

+ (GCHelper *)sharedInstance;
- (void) authenticateLocalUser;

@end

Поскольку теперь в моем делегате приложения есть ссылка на GCHelper, мне интересно, как на самом деле проверить в другом классе (где я отправляю счет), если игровой центр доступен.

Как получить одноэлементный экземпляр GCHelper в другом классе?

1 Ответ

1 голос
/ 26 мая 2011

Просто посмотрите, как я получаю экземпляр синглтон-класса в другом классе:

// DataClass.h

@interface DataClass : NSObject {    

int i;   

}    
@property(nonatomic,assign)int i;    
+(DataClass*)getInstance;    
@end  

// DataClass.m

@implementation DataClass    
@synthesize i;    
static DataClass *instance =nil;    
+(DataClass *)getInstance    
{    
@synchronized(self)    
{    
    if(instance==nil)    
{    

    instance= [DataClass new];    
}    
}    
return instance;    
}    

Теперь в вашем контроллере представления вам нужно вызвать этот метод как:

DataClass *obj=[DataClass getInstance];  
obj.i= // whatever you want;  

Эта переменная будет доступна для каждого контроллера представления. Вам просто нужно создать экземпляр класса данных.

...