我目前正在构建一个允许用户通过 Facebook 注册的社交媒体应用程序。我的注册过程运行良好,但我想做的一件事是请求用户 City 和 State 并将它们作为单独的键存储在我的数据库中。这样,我可以允许用户在我的应用程序中按城市或州搜索用户。
我已经设置了 FBRequestConnection 方法并将用户位置作为一个整体。
是否可以查询城市和州并分别存储?如果是这样,有什么建议吗?
提前致谢!
从您现在正在执行此操作的评论中:
[FBRequestrequestForMe]
接着:
if ([result objectForKey:@"location"]) {
NSString *facebookLocation = [[result objectForKey:@"location"] objectForKey:@"name"];
[[PFUser currentUser] setObject:facebookLocation forKey:@"location"];
}
result
是一个FBGraphUser
对象,location
您正在访问的属性是一个对象FBGraphPlace
:
https://developers.facebook.com/docs/reference/ios/current/protocol/FBGraphPlace
您当前正在访问的name
属性为FBGraphPlace
您提供该地点的 NSString 表示。你想要做的是访问location
属性,它是一个FBGraphLocation
. 该对象具有您想要的各种组件的属性:
https://developers.facebook.com/docs/reference/ios/current/protocol/FBGraphLocation
(我现在不在 Mac 上,所以这段代码中可能有一些错误)你应该能够做这样的事情:
id<FBGraphUser> fbUser = (id<FBGraphUser>)result;
id<FBGraphPlace> fbPlace = [fbUser location];
id<FBGraphLocation> fbLocation = [fbPlace location];
NSString * userCity = [fbLocation city];
NSString * userCountry = [fbLocation country];
NSString * userZip = [fbLocation zip];
//etc
然后,您可以随心所欲地使用此信息与您的 Parse 用户:
[[PFUser currentUser] setObject:userCity forKey:@"city"];
[[PFUser currentUser] setObject:userZip forKey:@"zip"];