不能closures从SKScene提供的GKGameCenterViewController
我正在从SKScene展示一个GKGameCenterViewController。 这是我的代码:
-(void)showLeaderboardAndAchievements:(BOOL)shouldShowLeaderboard{ GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init]; gcViewController.viewState = GKGameCenterViewControllerStateLeaderboards; gcViewController.leaderboardIdentifier = _leaderboardIdentifier; // _spriteViewController references an UIViewController [_spriteViewController presentViewController:gcViewController animated:YES completion:nil]; }
我没有提出窗口的问题,但我无法设法让用户closures它。 我实现了方法gameCenterViewControllerDidFinish
但是函数根本不被调用。 我必须做什么以便用户可以closures排行榜?
我通过添加行gcViewController.gameCenterDelegate = _spriteViewController;
-(void)showLeaderboardAndAchievements:(BOOL)shouldShowLeaderboard{ GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init]; gcViewController.viewState = GKGameCenterViewControllerStateLeaderboards; gcViewController.leaderboardIdentifier = _leaderboardIdentifier; gcViewController.gameCenterDelegate = _spriteViewController; // er // _spriteViewController references an UIViewController [_spriteViewController presentViewController:gcViewController animated:YES completion:nil]; }
虽然它的工作,我得到了警告: Assigning to 'id<GKGameCenterControllerDelegate>' from incompatible type 'UIViewController *__weak'
对于任何人在这种情况下,问题只是_spriteViewController
是UIViewController
types,改变我的自定义类固定的问题。 你也可以像这样声明引用ViewController的属性:
UIViewController <GKGameCenterControllerDelegate> *_spriteViewController;
- 我可以通过明确的邀请告诉iOS Gamecenter自动匹配吗?
- 如何实现使用Game Center的最佳分数今日排行榜?
- 如何将int转换为int64_t
- Game Center Matchmaking GKTurnBasedMatch有明显的滞后(〜1分钟)
- 我如何回复GKTurnBasedExchange? GKLocalPlayerListener委托receivedExchangeReplies被间歇调用
- 设置第三方服务器与Game Center进行交互
- GKLeaderboardViewController初始排行榜
- 当我更新我的游戏在iTunes连接将排行榜进行?
- 游戏中心的自动匹配和endTurnWithNextParticipants