gpt4 book ai didi

ios - 游戏中心排行榜 - 无法将 GKLeaderboardViewController 委托(delegate)设置为自身(CCLayer)

转载 作者:行者123 更新时间:2023-11-29 02:05:21 26 4
gpt4 key购买 nike

以下代码将无法编译,因为尝试将 GKLeaderboardViewController 委托(delegate)设置为调用实例会导致错误。

错误信息是:

Assigning to 'id<UINavigationControllerDelegate>' from incompatible type 'MainMenu *'

其中 MainMenu 是 CCLayer 类型。

如果赋值语句(leaderboard.delegate = self)被注释掉,代码会编译,排行榜会显示,但是当“完成”按钮被按下时回调不会被调用。

这是代码:

- (void) showLeaderBoard {

// Show GC leaderboard

GKLeaderboardViewController *leaderboard = [[GKLeaderboardViewController alloc] init];

if (leaderboard != nil) {

leaderboard.delegate = self;
leaderboard.category = @"ldrbrd_ref";

AppController *app = (AppController *)[[UIApplication sharedApplication] delegate];
[[app navController] presentViewController:leaderboard animated:YES completion:nil];
}
}

顺便说一句,这是我的对象声明 header :

#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "CCGameButton.h"

#import <GameKit/GameKit.h>

@interface MainMenu : CCLayer <CCGameButtonDelegate, GKLeaderboardViewControllerDelegate> {

}

+ (CCScene *) scene;

@end

我做错了什么?任何帮助表示赞赏!

最佳答案

我相信您正在寻找的是leaderboardDelegate属性(property)而不是 delegate属性(property)。 leaderboardDelegate需要 <GKLeaderboardViewControllerDelegate>delegate需要 <UINavigationControllerDelegate> ,因此出现错误消息。

检查苹果文档中的 leaderboardDelegate https://developer.apple.com/library/ios/documentation/GameKit/Reference/GKLeaderboardViewController_Ref/#//apple_ref/occ/instp/GKLeaderboardViewController/leaderboardDelegate

关于ios - 游戏中心排行榜 - 无法将 GKLeaderboardViewController 委托(delegate)设置为自身(CCLayer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29833605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com