我正在开发一个与facebook集成的新项目。该应用程序必须向Facebook提出不同的请求。 SDK提供了一个处理每个请求相同的委托。现在我需要一个自定义委托来处理不同的特定请求。有人可以给我一个如何实现这个目标的提示吗?
答案 0 :(得分:4)
Facebook类公开了许多返回FBRequest *对象的方法,每个方法都有一个委托参数,只要符合FBRequestDelegate协议,它就可以是你喜欢的任何对象。
因此,或者只有一个自定义类,它为每种类型的请求实现协议。或者,有一个实现协议的类,在这些方法中,您需要检查您收到的FBRequest以确定要执行的操作。所以,例如,如果你打电话:
Facebook *fb = [[Facebook alloc] initWithAppId:kYourFacebookAppId];
[params setObject:[NSNumber numberWithBool:YES] forKey:@"PostComment"];
[fb requestWithParams:params andDelegate:delegate];
[fb release];
然后在代表中,您可以执行以下操作:
- (void)request:(FBRequest *)request didLoad:(id)result {
// Make a decision based on the request
if ([[request.params objectForKey:@"PostComment"] boolValue]) {
// Here we should post a comment.
}
}
但是,我个人不会这样做,因为维护起来要困难得多。更好的是为每个Facebook相关任务编写单独的类。这些类可以从基础FBDelegate类继承,它执行错误处理等常见操作。