刚刚完成我的第一个 iOS 游戏(大部分)。一切准备就绪,只需在游戏中心链接即可。然而,这被证明是……烦人的。我的应用程序都在 iTunes Connect 上注册,所有 Game Center 代码都直接取自 Apple。那么为什么这些都不起作用呢?
第一:认证总是失败;
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *loginVC, NSError *error) {
if ([GKLocalPlayer localPlayer].authenticated) {
// authentication successful
}
else if (loginVC) {
// player not logged in yet, present the vc
[self presentViewController:loginVC animated:YES completion:nil];
}
else {
// authentication failed
}
};
出现错误“请求的操作已被取消”
作为推论,将来尝试展示游戏中心 vc 会产生“玩家未登录消息”
第二:这个
GKScore *score = [[GKScore alloc] init];
if (score) {
score.value = self->selectedScore;
NSArray* scoreArray = [[NSArray alloc]initWithObjects:score, nil];
//score.category = @"High Scores";
UIActivityViewController *avc = [[UIActivityViewController alloc]
initWithActivityItems:scoreArray applicationActivities:nil];
avc.completionHandler = ^(NSString *activityType, BOOL completed) {
if (completed)
[self dismissViewControllerAnimated:YES completion:nil];
};
if (avc)
[self presentViewController:avc animated:YES completion:nil];
}
产生一个'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]'
我从根本上做错了什么?感谢任何可以提供任何帮助的人。