关于gamecenter + ios的问题

我对gamecentre一无所知。我正在研究COCO应用程序,我已经通过游戏中心指南,并能够将游戏中心集成到我的应用程序中。

1) 现在我可以通过我的应用程序输入游戏中心的分数。 通过做这个:-

- (void) reportScore: (int64_t) score forCategory: (NSString*) category { GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:category] autorelease]; scoreReporter.value = score; [scoreReporter reportScoreWithCompletionHandler: ^(NSError *error) { [self callDelegateOnMainThread: @selector(scoreReported:) withArg: NULL error: error]; }]; } 

我昨天正在努力工作。但是现在如果我试图更新分数它没有更新。请任何人知道分数没有在游戏中心更新的原因我试图搜索但没有得到任何东西。

2)我想将一个玩家的当前纬度和经度发送到另一个玩家。 我开始知道GKMATCH有可能

 GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease]; request.minPlayers = 1; request.maxPlayers = 1; [[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) { if (error || !match) { // handle the error } else if (match != nil){ // match found }}]; /*GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease]; request.minPlayers = 1; request.maxPlayers = 1; GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request]; mmvc.matchmakerDelegate = self; currentMatch.delegate=self; [self presentModalViewController:mmvc animated:YES];*/ //[mmvc release]; } - (void)match:(GKMatch *)match player:(NSString *)playerID didChangeState:(GKPlayerConnectionState)state { switch (state){ case GKPlayerStateConnected: if (match.expectedPlayerCount == 0) { // start the match } break; case GKPlayerStateDisconnected: // remove the player from the match, notify other players, etc break; } } - (void)matchmakerViewControllerWasCancelled:(GKMatchmakerViewController *)viewController{} // Matchmaking has failed with an error - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFailWithError:(NSError *)error{ } // A peer-to-peer match has been found, the game should start - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindMatch:(GKMatch *)match{ } // Players have been found for a server-hosted game, the game should start - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didFindPlayers:(NSArray *)playerIDs{ } // An invited player has accepted a hosted invite. Apps should connect through the hosting server and then update the player's connected state (using setConnected:forHostedPlayer:) - (void)matchmakerViewController:(GKMatchmakerViewController *)viewController didReceiveAcceptFromHostedPlayer:(NSString *)playerID { } - (void) sendPosition { NSError *error; NSString* str = @"teststring"; NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; // NSData *packet = [NSData dataWithBytes:&msg length:sizeof(PositionPacket)]; [currentMatch sendDataToAllPlayers: data withDataMode: GKMatchSendDataUnreliable error:&error]; if (error != nil) { // Handle the erro.r } } 

但我不知道为什么但GKMatchmakerViewController的委托方法没有被调用我已经设置了委托但仍然甚至我无法得到GKMATCH(这里是currentMatch)。 所以由于这个[currentMatch sendDataToAllPlayers:data withDataMode:GKMatchSendDataUnreliable error:&error]; 这种方法不起作用。

因为CurrentMatch参考是0X0。 请帮帮我。如何发送和回收数据。 我做错了什么?或者还有别的事要做。

请帮帮我。

谢谢