我正在开启启用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