我正在開啓啓用ARC的iOS SDK 4項目。「self.delegate = self」無法在iOS上使用ARC
我類MyTextView
(來自UITextView的衍生自具有UITextViewDelegate
協議)實現了以下的靜態方法:
+ (void)showInViewController:(UIViewController*)viewController
{
MyTextView *textEdit = [[MyTextView alloc] init];
textEdit.delegate = textEdit;
[viewController.view addSubview:textEdit];
// Show the keyboard
[textEdit becomeFirstResponder];
}
我認爲控制器之一我調用以下:
[MyTextView showInViewController:self]
此崩潰與warning: Unable to restore previously selected frame.
在becomeFirstResponder
。看起來像一些堆棧相關的崩潰,因爲一些週期。我對ARC相當陌生。 UITextView
的代表屬性定義爲assign
(不應該將ARC解釋爲weak
?)。我知道這種方法在記憶方面很奇怪。不過,我想知道ARC是否可以處理這樣的事情。顯然它不能。任何想法可能是什麼問題以及如何解決它?
保留週期一般不會造成死機 - 他們只是防止物體以往任何時候都釋放。 – Caleb
謝謝Caleb。我相應地修改了標題。 –
甚至不足以讓這個答案,但可能[超setDelegate:自我];解決它。 – Aberrant