블록이있는 클래스의 인스턴스를 만들면 해당 블록을 강력한 참조로 가리키고 해당 블록에서 개체를 참조 할 때 강력한 참조를 사용하여 해당 개체를 가리키며 강력한 참조를 만듭니다 주기. 그래서 지금참조주기가 강한 블록 및 객체?
__weak Employee *weakSelf = self;
myBlock = ^{
NSLog(@"%@", weakSelf);
}
, 블록이 객체에 대한 약한 참조를 가지고 있지만 가정이 경우 블록 내부 자체에 대한 강한 로컬 참조를 만들 수있는 좋은 연습입니다 :이 작업을 수행하는 경우에 따라서
자기 가리키는 객체는 할당 해제됩니다.
__weak Employee *weakSelf = self;
myBlock = ^{
Employee *innerSelf = weakSelf;
NSLog(@"%@", innerSelf);
}
내가 알고 내가 올바르게 이해 있는지 확인하고 싶었다, 그래서 나는 (내가 틀렸다 경우에, 저를 수정하시기 바랍니다) 일어나는 생각의 그림 그린 :
수정 된 시각은 크게 감사하겠습니다.