2015-01-19 4 views
0

Я сейчас работаю над Game Center. В руководстве по программированию Game Center от Apple (Listing 4-11), есть пример кода для получения лучших результатов от Полноразмерный:Игровой центр GKLeaderboard инициализатор не поддается?

GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init]; 
if (leaderboardRequest != nil) 
{ 
    ... 
    [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) { 
    ... 
} 

это вообще нужно, чтобы проверить, является ли ноль возвращаемый объект? Удастся ли init и вернуть нуль?

ответ

1

В документации ничего не говорится об этом, и если мы посмотрим в файле заголовка для GKLeaderboard (GKLeaderboard.h), то об этом ничего не говорится. Декларация для инициализации функций выглядит следующим образом:

- (instancetype)init; 

Это означает, что функция инициализации будет возвращать экземпляр GKLeaderboard или ноль (или любой подкласс GKLeaderboard).

Таким образом, ответ будет да, вы всегда должны проверить, нет ли возвращаемого значения.