이 질문은 이전에 물어 보았지만 해결 방법 중 어느 것도 내 문제를 해결하지 못하므로 다시 질문 할 것입니다. 내가 블록을 통해 콜백의 결과로 자기에 대한 메서드를 호출하려고합니다. 나는 다음과 같은 오류 받고 있어요 :Objective-C는 ARC가있는 블록을 올바르게 사용합니까?
이 블록에 강력하게 '자기'를 캡처하는 것은 사이클을
- (void)viewDidLoad {
[super viewDidLoad];
self.webClient.completionHandler = ^{
[self populateData];
};
}
나는 아래의 코드와 같은 일을 시도
을 유지 이어질 가능성, 그리고 나는 아직도 해요 같은 경고를 받는다. 해결책은 무엇입니까?
- (void)viewDidLoad {
[super viewDidLoad];
__weak id weakSelf = self;
self.webClient.completionHandler = ^{
[weakSelf populateData];
};
}
__weak 행을 블록 안에 넣고 있습니까? 그렇다면 완료 핸들러를 설정하거나 블록을 정의하는 행 앞에 있어야합니다. – UIAdam
예 앞에서 [self populateData] – aryaxt
블로어 내부의 모든 작업을 수행 할 수 있도록 더 청결한 weay가 있습니까? – aryaxt