Семантическая проблема при загрузке GameCenter Leaderboard

У меня появляется предупреждающее сообщение, когда я загружаю таблицы лидеров Game Center с помощью:

GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil) {
    leaderboardController.leaderboardDelegate = self;
    [self presentModalViewController:leaderboardController animated:YES];
}

Предупреждающее сообщение появляется в третьей строке и говорит:

предупреждение: семантическая проблема: присвоение «id» из несовместимого типа «ViewMenuController *»

Я понимаю сообщение, но я не знаю, как его решить. Код работает нормально, но я хотел бы удалить предупреждение или узнать, есть ли лучший способ загрузки списков лидеров.

Заранее спасибо.

Решение:

Я сделал две модификации в ViewMenuController.h:

Добавьте этот импорт:

#import <GameKit/GameKit.h>

и измените эту строку, добавив:

@interface ViewMenuController : UIViewController <GKLeaderboardViewControllerDelegate> {

Спасибо всем за вашу помощь!


person Ferran T.    schedule 02.01.2012    source источник
comment
Проверьте, не требует ли self реализации GKLeaderboardViewControllerDelegate.   -  person Eimantas    schedule 03.01.2012


Ответы (1)


Лучше всего предположить, что когда вы устанавливаете leaderboardDelegate на себя, он ожидает id<GKLeaderboardViewControllerDelegate>, но ваш ViewMenuController не определяет себя как соответствующий протоколу GKLeaderboardViewControllerDelegate.

Убедитесь, что вы установили это в интерфейсе ViewMenuController.

person MarkPowell    schedule 02.01.2012