【发布时间】:2014-04-05 16:20:04
【问题描述】:
我正在使用来自 Facebook SDK 的块。它返回一个字典。我希望该字典作为方法的返回值。我正试图围绕整个街区概念展开思考,但需要朝着正确的方向轻推。
块: (块的参数是字符串 userFBid)
-(NSDictionary*) getMutualFBFriendsWithFBid:(NSString*)fbID {
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/%@/mutualfriends/%@", [[PFUser currentUser] objectForKey:kFbID],userFBid]
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
id result,
NSError *error
) {
result = (NSDictionary*)result;
//return result;
}];
}
如何获取返回值?
我试图用谷歌搜索它,但我无法解决它。
我将不胜感激任何指向正确方向的指针。
编辑: 主要问题如下:我需要完成处理程序来调用另一个类中的方法......怎么做?
【问题讨论】:
-
请求是异步的,因此您应该在该块中处理“结果”字典或创建一个附加方法并将结果字典作为参数调用它。
-
我在不同的类中使用相同的“结果”,所以我宁愿能够调用它并在这些不同的类中使用结果。试着弄清楚如何。
-
@B-Man 您可以将
result存储在您自己的公共实例变量中,并在您的其他类中访问它。这就是你的目标吗? -
@Bigood 是的,是的。请参阅上面的编辑。我必须把这个方法放在一个单例类中,然后在另一个类中使用结果。所以你很感兴趣,只是想弄清楚如何真正做到这一点。我无法想象,我只是为 Singleton 类分配了一个公共属性,并在需要时获取它,然后将调用该块?
-
@B-Man 我不明白:你为什么要在别处调用
completionHandler的块?
标签: ios objective-c facebook objective-c-blocks