Apple gamecenter可用测试在iphone 3g上返回YES

时间:2011-05-23 14:57:33

标签: iphone gamekit

我正在制作一个支持游戏中心的游戏。我想为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); }

有没有人比苹果做得更好?

1 个答案:

答案 0 :(得分:3)

显然,检测Game Center支持不仅仅是检查API是否存在。根据{{​​3}},除了检查API之外,您还需要对播放器进行身份验证:

  

可能会在某些版本上安装iOS 4.1   不支持游戏的设备   中央。在那些设备上,   isGameCenterAPIAvailable函数   定义清单1-1仍然返回YES。   确认是否下一步   可以在设备上使用游戏中心   是尝试验证   本地球员;在没有的设备上   支持游戏中心,你的游戏   收到GKErrorNotSupported错误。