Я добавляю поддержку Game Center в свою игру.Поскольку моя игра может работать на версиях iOS начиная с версии 3.0, я хочу использовать ее в качестве запасного варианта, просто сохраняя достижения и таблицы лидеров локально в отсутствие Game Center.
Прямо сейчас у меня есть следующее:
+ (BOOL) isGameCenterAvailable {
Class playerClass = NSClassFromString( @"GKLocalPlayer" );
if( playerClass != nil && [playerClass localPlayer] != nil ) {
DebugLog( @"Game Center is available" );
return YES;
}
DebugLog( @"Game Center is NOT available" );
return NO;
}
Однако, похоже, это не работает вообще.Во-первых, несмотря на ссылку GKLocalPlayer о том, что этот класс доступен в iOS 4.1 и более поздних версиях, вышеуказанный тест проходит в iOS 4.0 (я не пробовал более ранние версии).Во-вторых, тест также проходит на устройствах с iOS 4.1, но не поддерживающих Game Center (например, iPhone 3G).
Я просмотрел различные документы по GameKit и Game Center в Интернете, и мне не повезло с этим разобраться.Я, конечно, мог определить версию ОС, но это выглядит неубедительно.Это также не поможет в случае неподдерживаемого оборудования (например, 3G).Полагаю, это также может быть обнаружено, но, опять же, кажется, что это немного неубедительно.
Каков «правильный путь» для программного определения поддержки Game Center?