2011-07-29 9 views
0

私はこのようなコードをユーザーのFacebookの壁に掲示しています:要求が完了する前に、私はホスティングのUIViewControllerを却下した場合、デリゲートがされているため、要求が実際に完了しない場合、私はクラッシュを取得し、Facebookのオブジェクト代理人にアクセスしますか?

[appDelegate.facebook requestWithGraphPath:@"me/feed" 
        andParams:params 
       andHttpMethod:@"POST" 
       andDelegate:self]; 

deallocされました。

これを回避する方法はありますか?私は実際に私のappDelegate FB delegateのような高レベルのオブジェクトを作りたいとは思わないが、これはばかげているようだ。

は、私がここに直面してる問題の適切な説明があります:https://github.com/facebook/facebook-ios-sdk/issues/220

答えて

0

お使いのコントローラのdeallocメソッドでは、nilにFacebookのオブジェクトのデリゲートを設定します。このようになりますあなたのケースでは:要求が完了すると

- (void)dealloc { 
    appDelegate.facebook.sessionDelegate = nil; 
    [super dealloc]; 
} 

、デリゲートメソッドは、静かにメッセージを飲み込むだろうnilのオブジェクト上で呼び出されます。

これは、任意のオブジェクトの代理人としてselfを設定すると、いつでも入ることができる良い習慣です。

+0

これは実際に私の問題を解決しませんでしたが、私の実際の質問に対する答えのように見えます。私はASIHttpRequestに切り替えることで私の問題を解決しました。 –

関連する問題