이것은 이미 SO 내의 답변 질문이지만 어디서나 Apple 설명서 ()에서 찾을 수 없습니다. 저를 올바른 방향으로 가르쳐 주시겠습니까? 다음 항목 performSelector : withObject : 및 그 보유 행위
the effect on retain count of performSelector:withObject:afterDelay:inModes
Is object that calls performSelector:withObject:afterDelay get retained by the NSRunLoop?
기본 동작은 다음과 같은 것으로 보인다
Do I have to retain an object before passing it to -performSelector:withObject:afterDelay:?
내: 는 수신기 및 인수 (들)을 유지합니다.
다음 코드 userData
는 오토 릴리즈 oject입니다
[[self delegate] performSelector:@selector(tryToSendStoreData:) withObject:userData];
을 사용하고 있습니다.
전달 카운트 ()를 로깅하면 전달 된 데이터의 보유 횟수가 증가합니다 (). 대리자에서 메서드를 호출하면 보유 개수가 1이 아닙니다.
내 질문은 : 누출을 방지하기 위해 메모리 관리를 수행해야합니까, 아니면 Apple 제품을 신뢰해야합니까? 나는 올바른 문서를 찾을 수 없으므로 여기서 나는 불가지론 자라고 말하고있다.
미리 감사드립니다.
보유 개수가 ARC에서 더 이상 정확하지 않습니다. – Dustin
@Cake이 프로젝트에서 ARC를 사용하지 않습니다. 감사. –
ARC가 활성화 된 프로젝트의 경우에는 다음을 살펴볼 수 있습니다. - http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknnn – rishi