游戏中心朋友列表

时间:2011-12-01 05:33:07

标签: iphone objective-c game-center

所有

我为Apple iOS制作了一款游戏。现在我想在Apple的游戏中心展示我的好友列表。

如何在iPhone上显示已登录播放器的Game Center好友列表,可能使用UIViewController(管理ViewControllers)?

任何帮助将不胜感激..

...谢谢

2 个答案:

答案 0 :(得分:7)

要在您的应用中显示您的游戏中心朋友,您可以使用以下代码。

     -(void) retrieveFriends
   {
          GKLocalPlayer *lp = [GKLocalPlayer localPlayer]; 
          if (lp.authenticated)   
         { 
             [lp loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error)
             {
                 if (friends != nil)
                 {
                      [self loadPlayerData: friends];
                 }

             }];

         }

    }



       -(void) loadPlayerData: (NSArray *) identifiers
        {
             [GKPlayer loadPlayersForIdentifiers:identifiers withCompletionHandler:^(NSArray *players, NSError *error) 
           {

              if (error != nil) 
                {
                  // Handle the error.
                } 
             if (players != nil) 
               {
          // Process the array of GKPlayer objects.
               } 
           }];

          }

如需更多参考,您可以使用Apple Game KIT指南。下面是它的链接

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/GameKit_Guide/Introduction/Introduction.html

希望有所帮助......

答案 1 :(得分:0)

对于单个区块:

-(void)loadPlayerData:(void (^)(NSArray * playerObjects))complete
{
    GKLocalPlayer *lp = [GKLocalPlayer localPlayer];
    if (lp.authenticated)
    {
        [lp loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error)
         {
             if (friends != nil)
             {
                 [GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error)
                  {

                      if (error != nil)
                      {
//                            return @[error];
                          // Handle the error.
                      }
                      else
                      {
                          complete (players);

                      }
                  }];
             }
         }];
    }
}