游戏中心。获取真实姓名

问题描述:

我想知道本地玩家的真实姓名,但GKLocalPlayer的displayName返回“我”,而不是真名。游戏中心。获取真实姓名

代码我用什么:

void (^completitionHandler)(NSArray *, NSError *) = ^(NSArray *players, NSError *error) { 

    for (GKPlayer *p in players) { 
     NSString *alies = p.alies; 
     NSString *name = p.displayName; 
     NSLog(@"name = %@",name); //not real name, just "Me" 
    } 

} 
+0

请用解决方案更新问题,或者将给定答案的正确答案标记为已接受的答案。谢谢! – veducm 2014-01-22 11:51:43

使用[GKLocalPlayer localPlayer

NSString *alias = [GKLocalPlayer localPlayer].alias 
NSString *name = [GKLocalPlayer localPlayer].displayName 
+0

感谢您的回复,但它返回“我” – Sinba 2013-03-13 15:08:09

+1

别名属性返回了实际名称。工作很好。 – user642252 2015-01-02 20:46:37

不确定displayName可用于检索本地用户全名。从Apple's documentation

播放器对象提供详细关于球员

当你的游戏需要特定玩家的详细信息,它通过使查询游戏中心检索那些细节。您使用该玩家的玩家标识符检索玩家的信息。游戏套件将这些细节以GKPlayer对象的形式返回给您的游戏。

  • 显示名

    用户可读的字符串,就可以显示该玩家在自己的用户界面。例如,在网络比赛中,您可以在比赛中显示每个球员的显示名称,以便每个人都知道他们对阵的球员。

    玩家的display name取决于玩家是否是在设备上认证的本地玩家的朋友。如果玩家是本地玩家的朋友,则显示名称是玩家的真实姓名。如果玩家不是朋友,那么显示名称就是玩家的别名。

它的目的是获取其他玩家的名字。然后,如果您询问本地播放器的displayName,则说明它返回“Me”,因为您是此设备的当前用户。我想这与隐私政策有关。

可能的解决方法:

也许,你可以让本地用户ID,并用它来尝试从玩家对于该ID列表获取的真实姓名。但我不知道这是否会被采纳,因为你是否是你的朋友。