2012-03-29 7 views
2

私はFacebookのiOS SDKをプロジェクトに使用しています。リクエストを行った後でも、回答を受け取る前にUIViewControllerをポップすると、デリゲートが表示されたときにEXC_BAD_ACCESSが表示されますセレクタに応答します。さて、デリゲートはUIViewControllerが既にポップされているので、もう存在しないでしょう。iOS Facebook SDKがEXC_BAD_ACCESSの原因となる代理人を保持しない

この問題について調査したところ、私はthisここで答えましたので、デリゲートが保持されているのでこの問題を起こすべきではないと私に伝えました。しかし、答えは少し古いです、そして、その後、彼らはアークを使用し始めました。だから私はSDKをチェックし、それを保持していないことに気づいた。

これは既知の問題ですか?私はここに何かを逃していますか

SDKを変更してデリゲートを保持しようとしましたが、問題が解決しませんでした。それにもかかわらず、私は多くの専門知識を持っていないため、サードパーティのライブラリを変更するのは好きではありません。この状況ではアークが本当に問題であるかどうかわかりません(私はretaing/release/autoreleaseもう)。また、私はこれがFacebook SDKだと思っていました。もし誰かが既に同じ問題を抱えていて、それを解決してしまったバグだったら。

編集:私は今、少なくとも私はFacebookのSDKを使用していたバージョンは、アークを使用していません実現(彼らはすでにそれをサポートしている場合、私は知りません)、問題は、このことがあります

@property(nonatomic,assign) id<FBRequestDelegate> delegate; 

保持してはいけませんか?

EDIT2:申し訳ありませんが、別のanswerを先にリンクした同じ投稿にスキップしました。

私が指摘したことは、SDKの新しいバージョンでは廃止されているようです。最善の方法は、リクエストをキャンセルすることです。

答えて

0

保持しないでください。

絶対にありません。あなたがそれをしたら、VCを所有しているVC(FBRequestを所有しているVC)を保持する可能性が非常に高いでしょう。

ビューコントローラの割り当てが解除されたときに、要求をキャンセルするか、要求の代理人をnilに設定してキャンセルすることが正しいと思われます。

関連する問題