OGeek|极客世界-中国程序员成长平台

标题: ios - Facebook iOS SDK - 自定义委托(delegate) [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 16:38
标题: ios - Facebook iOS SDK - 自定义委托(delegate)

我正在开发一个与 facebook 集成的新项目。该应用程序必须向 facebook 发出不同的请求。 SDK 提供了一个委托(delegate)来处理每个请求。现在我需要一个自定义委托(delegate)来处理某些不同的请求。有人可以给我一个关于如何完成这个的提示吗?



Best Answer-推荐答案


Facebook 类公开了许多返回 FBRequest* 对象的方法,并且每个方法都有一个委托(delegate)参数,委托(delegate)可以是您喜欢的任何对象,只要它符合 FBRequestDelegate 协议(protocol)即可。

因此,只要有一个自定义类来为每种类型的请求实现协议(protocol)即可。或者,有一个实现协议(protocol)的类,在这些方法中,您需要检查收到的 FBRequest 以确定要做什么。因此,例如,如果您正在调用:

Facebook *fb = [[Facebook alloc] initWithAppId:kYourFacebookAppId];
[params setObject:[NSNumber numberWithBool:YES] forKey"ostComment"];
[fb requestWithParams:params andDelegate:delegate];
[fb release];

然后在委托(delegate)中,您可以执行以下操作:

- (void)requestFBRequest *)request didLoadid)result {
    // Make a decision based on the request
    if ([[request.params objectForKey"ostComment"] boolValue]) {
        // Here we should post a comment.

    }
}

但是,我个人不会这样做,因为它会更难维护。更好的是为每个 Facebook 相关任务编写单独的类。这些类可以继承自 FBDelegate 基类,该类执行常见的操作,例如错误处理。

关于ios - Facebook iOS SDK - 自定义委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6342612/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4