찾다

 >  Q&A  >  본문

objective-c - block内存管理的问题

[UIView animateWithDuration:0.2 animations:^{
    self.movingView.transform = CGAffineTransformMakeTranslation(200, 0);
}];

非常常用的一个动画block.

那么,在动画 block 中使用了成员变量,会导致 retain cycle 吗?

PHP中文网PHP中文网2766일 전741

모든 응답(3)나는 대답할 것이다

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-24 16:02:38

    소위 "참조 순환"은 양방향 강한 참조를 의미하므로 "단방향 강한 참조"(강한 참조 자체 차단)에는 문제가 없습니다.

    매우 자세한 질문 39번 링크를 읽어 보시기 바랍니다.
    면접 질문 "신뢰할 수 있는 iOS 채용"에 대한 답변 참고

    회신하다
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-24 16:02:38

    아크라면 그렇지 않습니다

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-04-24 16:02:38

    arc이면 이런 문제가 발생합니다~mrc는 발생하지 않습니다.

    사용하는 멤버 변수가 컴파일러에 self->member처럼 보이기 때문입니다. 따라서 arc 모드에서는 멤버 변수만 사용하더라도 self가 실제로 이 변수를 가리키며 여전히 메모리 누수 문제가 발생합니다.

    회신하다
    0
  • 취소회신하다