我正在制作一个支持游戏中心的游戏。我想为iPhone 3g或旧设备按一个按钮。但我的3g测试设备说,游戏中心可用,配对视图出现。用户永远不会得到身份验证。如果游戏中心可用,我会使用苹果的片段进行检查。它应该在超过3gs的设备上返回NO
-(BOOL)isGameCenterAvailable {
// check for presence of GKLocalPlayer API
Class gcClass = (NSClassFromString(@"GKLocalPlayer"));
// check if the device is running iOS 4.1 or later
NSString *reqSysVer = @"4.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
BOOL osVersionSupported = ([currSysVer compare:reqSysVer
options:NSNumericSearch] != NSOrderedAscending);
return (gcClass && osVersionSupported); }
有没有人比苹果做得更好?
答案 0 :(得分:3)
显然,检测Game Center支持不仅仅是检查API是否存在。根据{{3}},除了检查API之外,您还需要对播放器进行身份验证:
可能会在某些版本上安装iOS 4.1 不支持游戏的设备 中央。在那些设备上, isGameCenterAPIAvailable函数 定义清单1-1仍然返回YES。 确认是否下一步 可以在设备上使用游戏中心 是尝试验证 本地球员;在没有的设备上 支持游戏中心,你的游戏 收到GKErrorNotSupported错误。