任何方式来获得iPhone用户的名字?
除了要求用户input他们的名字之外,还有什么办法可以把它从设备上取下来吗?
我尝试了这个库,它尝试从[UIDevice currentDevice] name]
提取名称,但在很多情况下不起作用:
https://github.com/tiboll/TLLNameFromDevice
用户的姓名是否存在于电话簿或我们可以在iOS 6中访问的任何其他地方?
那么你可以通过通讯录中的所有联系人,看看他们中的任何人是否标有所有者标志。
只要知道这样做将popup“这个应用程序想要访问通讯簿”消息。 另外,苹果公司对这些事情并不是很热衷。 在应用程序审查指南中指出,未经用户许可,应用程序不能使用个人信息。
你可以使用Square的解决scheme :
- 获取设备的名称 (例如“John Smith的iPhone”)。
- 浏览电话中的联系人,然后查找名为“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上的代码