IOS脸书单例并获取个人资料图片



我正在尝试从UIViewController获取个人资料图片。

我的Facebook在单身课堂上。来自UIView控制器[[myfacebook shared requestWithGraphPath:@"me/picture" and Delegate:self];
如果我第一次需要登录或应用程序触发,这不起作用。因为正在调用授权并调用了 didLogin。

这条线没有被击中。- (void)request:(FBRequest *)request didLoad:(id)result {

我该如何处理这些场景1.单例脸书实例类,2.从UIView控制器调用3. 需要登录。

我建议创建一个名为FacebookSingletonDelegate的协议

@class FacebookSingleton; 
@protocol FacebookSingletonDelegate <NSObject>
- (void) facebookSingletonDidLogin:(FacebookSingleton *) facebookSingleton;
- (void) facebookSingletonDidNotLogin:(FacebookSingleton *) facebookSingleton;
- (void) facebookSingletonDidLogout:(FacebookSingleton *) facebookSingleton;
- (void) facebookSingleton:(FacebookSingleton *)facebookSingleton
            request:(FBRequest *) request
            didLoad:(id)result;

@end

然后在您的FacebookSingleton.h中创建一个属性,例如

@property (nonatomic, strong) id<FacebookSingletonDelegate> delegate;

然后让你的视图控制器符合协议 -

@interface MyViewController<FacebookSingletonDelegate>
然后,将

自己设置为视图控制器中的委托,例如 -

myViewController.delegate = self;

然后,从 FacebookSingleton 实现 (FacebookSingleton.m) 触发委托方法

——
- (void)request:(FBRequest *)request didLoad:(id)result 
{
  [self.delegate facebookSingleton:self request:request didLoad:result]; 
}

然后,您可以在视图控制器中实现以下方法 -

- (void) facebookSingleton:(FacebookSingleton *)facebookSingleton
            request:(FBRequest *) request
            didLoad:(id)result
{
 // the view controller will receive the event in here
}

最新更新