0

UIViewController からプロフィール写真を取得しようとしています。

私のFacebookはシングルトンクラスです。UIViewController から [[myfacebook shared requestWithGraphPath:@"me/picture" andDelegate:self];
初めてログインまたはアプリを起動する必要がある場合、これは機能しません。authorize が呼び出され、 didlogin が呼び出されたためです。

この行はヒットしませんでした。- (void)request:(FBRequest *)request didLoad:(id)result {

これらのシナリオをどのように処理しますか 1.Singleton Facebook インスタンス クラス、2.UIViewController からの呼び出し 3.ログインが必要です。

4

1 に答える 1

0

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;

次に、ViewControllerをプロトコルに準拠させます-

@interface MyViewController<FacebookSingletonDelegate>

次に、ViewControllerのデリゲートとして自分自身を設定します。Ex-

myViewController.delegate = self;

次に、FacebookSingleton実装(FacebookSingleton.m)からデリゲートメソッドをトリガーします-

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

次に、ViewController内に次のメソッドを実装するだけです-

- (void) facebookSingleton:(FacebookSingleton *)facebookSingleton
            request:(FBRequest *) request
            didLoad:(id)result
{
 // the view controller will receive the event in here
}
于 2012-09-12T22:08:13.220 に答える