0

我目前正在构建一个允许用户通过 Facebook 注册的社交媒体应用程序。我的注册过程运行良好,但我想做的一件事是请求用户 City 和 State 并将它们作为单独的键存储在我的数据库中。这样,我可以允许用户在我的应用程序中按城市或州搜索用户。

我已经设置了 FBRequestConnection 方法并将用户位置作为一个整体。

是否可以查询城市和州并分别存储?如果是这样,有什么建议吗?

提前致谢!

4

1 回答 1

1

从您现在正在执行此操作的评论中:

[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"];
于 2013-11-14T19:00:02.873 回答