__weak 참조와 __block 참조의 차이점은 무엇입니까? 저는 Xcode의 문서를 읽고 있는데 여기에 저를 당혹스럽게하는 것이 있습니다. __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 다음은 문서에서 복사되었습니다. 블록은 캡처하는 변수에 대한 강력한 참조를 형성합니다. 당신이 사용하는 경우 self블록 내에서 블록에 강한 참조를 형성 self그렇다면, self또한 블록에 대한 강한 참조 (가 일반적으로 수행하는), 강한 참조주기 결과가 있습니다. 순환을 피하려면 __block위의 예에서와 같이 블록 외부에서 self에 대한 약한 (또는 ) 참조를 만들어야합니다 . '약한 (..