3G / WWAN上的Game Center多人游戏 - getLocalConnectionData超时

时间:2012-01-09 20:14:45

标签: iphone networking gamekit 3g-network

我有一个使用GameCenter进行网络连接的多人游戏。使用GKMatch的无线网络游戏可以很好地工作,但是在3G上它们从不连接。我的

-[GKMatchmaker findMatchForRequest:
withCompletionHandler:]
使用错误代码503调用

完成处理程序块,根据该标头,错误代码503不是GKErrorDomainCode。相反,它似乎是一个HTTP错误代码。

这是我的代码:

//GKLocalPlayer is already authenticated at this point
    _matchRequest = [[[GKMatchRequest alloc] init] autorelease];
    [_matchRequest setMinPlayers: 2];
    [_matchRequest setMaxPlayers: 2];
    GKMatchmaker *matchmaker = [GKMatchmaker sharedMatchmaker];
    [matchmaker findMatchForRequest: _matchRequest
              withCompletionHandler:
     ^(GKMatch *match, NSError *error) {
         if (error)
         {
             if ([error code] != GKErrorCancelled)
             {
                 dispatch_async(dispatch_get_main_queue(), ^{
                     [[[[UIAlertView alloc] initWithTitle: 
                          NSLocalizedString(@"Can't find match.", @"Alert title for when automatching failed") 
                          message: [error localizedDescription] 
                          delegate: nil 
                          cancelButtonTitle: NSLocalizedString(@"OK", @"Button text for OK button") 
                          otherButtonTitles: nil] autorelease] show];
                 });
             }
             else
             {
                    NSLog(@"Canceled :(");
             }
         }
         else
         { 
             dispatch_async(dispatch_get_main_queue(), ^{
                 // do some main-thread stuff specific to my app
                 _match = [match retain];
                 [_match setDelegate: self];
             });
         }
     } ];
}

SNJGKLocalPlayerManager只需将播放器记录到GameCenter中。这样的典型输出是UIAlertView说“操作无法完成。getLocalConnectionData从第一个dispatch_async块中的行超时”。如果我使用NSLog输出错误代码,那就是503。

如果您已经让GameCenter多人游戏通过3G工作并且不想查看我的代码,请随时分享您的工作代码,我会尽力找到我的错误!谢谢!

0 个答案:

没有答案