ARC가 활성화 된 iOS SDK 4 프로젝트에서 작업 중입니다.ARC를 사용하여 iOS에서 "self.delegate = self"가 작동하지 않습니다.
는내 클래스 MyTextView
(UITextViewDelegate
프로토콜 UITextView에서 파생 된) 다음과 같은 정적 메소드를 구현 : 나는 다음과 같은 호출 내보기 컨트롤러 중 하나에서
+ (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. 그에 따라 제목을 수정했습니다. –
답변을하기에 충분하지 않겠지 만 [super setDelegate : self]; 그것을 해결합니다. – Aberrant