2011-05-23 6 views
0

私はgamecenterサポートでゲームを作っています。私は、iPhone 3g以上のデバイス用のボタンを軽く見たいと思っています。しかし、私の3gテストデバイスによれば、gamecenterが利用可能であり、マッチメイキングビューが表示されます。ユーザーは決して認証されません。私は、gamecenterが利用可能かどうかを確認するためにリンゴのスニペットを使用します。 3gsより古いデバイスではNOを返します。Apple gamecenterの利用可能なテストは、iPhone 3GでYESを返します。

-(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

iPhone 3GはiOS 4.1を実行できますか?ご自分の携帯電話に搭載されているOSのバージョンを確認できますか? – Andy

+0

私の3gには4.2.1があります。 OSのバージョンを確認するだけでは不十分です。 – zeiteisen

+0

あなたの質問は何か分かりません。 GameCenterは4.2.1にあり、3Gにはそのバージョンがインストールされています。コードが正しく動作していないのですか? – Andy

答えて

3

明らかに、APIの存在をチェックするだけではなく、Game Centerのサポートを検出することが増えています。

のiOS 4.1は、ゲーム センターをサポートしていないいくつかの デバイスにインストールすることができる。Optionally Supporting Game Center In Your Gameによると、APIのチェックに加えて、あなたはまた、プレーヤーを認証する必要があります。これらのデバイスでは、 はGameCenterAPIAvailable関数 が定義されています。リスト1-1は依然としてYESを返します。 ゲームセンターをデバイス で使用できるかどうかを確認する次のステップは、ローカルプレイヤー の認証を試みることです。 ゲームセンターをサポートしていないデバイスでは、ゲーム はGKErrorNotSupportedエラーを受け取ります。

関連する問題