2018년 글인데 이제서야 봤네요;; 내용 대충 정리해드리면,
var someClosure { [weak self] in
1. guard strongSelf = self else { return }
2. guard 'self' = self else { return }
3. guard self = self else { return }
}
Swift
복사
•
guard strongSelf = self else { return }
◦
개발자 각각이 다른 이름을 쓰게 되면 혼동이 올 수 있다.
▪
sself, strongSelf 등
◦
코드 수정 시 일일히 strongSelf 를 지워줘야 한다.
•
guard 'self' = self else { return }
◦
컴파일러 에러다 쓰지마라
•
guard self = self else { return }
◦
guard 문에서 약한 self (self?) 가 강한 self (그냥 self) 로 쓰일 수 있습니다.
◦
강한 참조를 쓰는거 같아도 메모리 해제시 guard 문에서 걸러질꺼라 안전합니다.
◦
기존 코드와 구별 없이 쓸 수 있습니다.