我使用Facebook的iOS SDK的一個項目,如果我做一個請求之後,接收應答之前彈出一個UIViewController我得到一個EXC_BAD_ACCESS當它試圖看看是否委託響應選擇器。那麼,委託是已經彈出的UIViewController,所以它可能不再存在。的iOS SDK的Facebook不保留委派引起EXC_BAD_ACCESS
在研究這個問題時,我偶然發現了this這裏的答案告訴我,我不應該因爲委託被保留而出現這個問題。但答案有點老,他們之後開始使用弧。所以我檢查了SDK,發現他們不再保留它了。
這是一個已知的問題?我在這裏錯過了什麼嗎?
我嘗試修改SDK並保留委託並且問題消失。不過,我不喜歡修改第三方庫,因爲我沒有那麼多的專業知識,我不確定在這種情況下arc是否真的存在問題(我認爲我們不需要使用retain/release/autorelease了)。此外,我認爲這是Facebook的SDK,如果它是一個人應該已經偶然發現同樣的問題並解決它的錯誤。
編輯:我現在認識到,至少我使用Facebook的SDK中沒有使用弧形的版本(我不知道他們是否已經支持它),問題可能是這樣的:
@property(nonatomic,assign) id<FBRequestDelegate> delegate;
不應該保留嗎?
EDIT2:對不起,我通過另一個answer前面掛同一職位跳過。
看來我指出的是,現在在SDK的新版本過時。最好的辦法似乎是取消請求。