任何方式来获得iPhone用户的名字?

除了要求用户input他们的名字之外,还有什么办法可以把它从设备上取下来吗?

我尝试了这个库,它尝试从[UIDevice currentDevice] name]提取名称,但在很多情况下不起作用:

https://github.com/tiboll/TLLNameFromDevice

用户的姓名是否存在于电话簿或我们可以在iOS 6中访问的任何其他地方?

那么你可以通过通讯录中的所有联系人,看看他们中的任何人是否标有所有者标志。

只要知道这样做将popup“这个应用程序想要访问通讯簿”消息。 另外,苹果公司对这些事情并不是很热衷。 在应用程序审查指南中指出,未经用户许可,应用程序不能使用个人信息。

你可以使用Square的解决scheme :

  1. 获取设备的名称 (例如“John Smith的iPhone”)。
  2. 浏览电话中的联系人,然后查找名为“John Smith”的联系人。

JBDeviceOwner和ABGetMe都会为你做这个。

您可以使用:

 NSLog(@"user == %@",[[[NSHost currentHost] names] objectAtIndex:0]); 

我没有收到编译器警告, +currentHost方法+currentHost和 – -names 。 考虑到这个警告,我不确定苹果是否打算把它作为一个可公开访问的API来使用,但是,一切似乎都按预期工作,不需要包含任何额外的头文件或链接到额外的libraries / frameworks

编辑1:你也可以看看这个链接

编辑2:如果您已经将您的应用程序与Facebook集成在一起,您可以轻松地检索用户信息,请参阅Facebook获取用户数据

你可以使用CloudKit 。 在Swift中的一个片段(忽略错误):

 let container = CKContainer.defaultContainer() container.fetchUserRecordIDWithCompletionHandler( { (recordID, error) in container.requestApplicationPermission( .PermissionUserDiscoverability, { (status, error2) in if (status == CKApplicationPermissionStatus.Granted) { container.discoverUserInfoWithUserRecordID( recordID, completionHandler: { (info, error3) in println("\(info.firstName) \(info.lastName)") } ) } } ) } ) 

上述代码基于http://www.snip2code.com/Snippet/109633/CloudKit-User-Info上的代码