Search
🚪

Closure 에서 [weak self] 사용할 때

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 }
개발자 각각이 다른 이름을 쓰게 되면 혼동이 올 수 있다.
sselfstrongSelf 등
코드 수정 시 일일히 strongSelf 를 지워줘야 한다.
guard 'self' = self else { return }
컴파일러 에러다 쓰지마라
guard self = self else { return }
guard 문에서 약한 self (self?) 가 강한 self (그냥 self) 로 쓰일 수 있습니다.
강한 참조를 쓰는거 같아도 메모리 해제시 guard 문에서 걸러질꺼라 안전합니다.
기존 코드와 구별 없이 쓸 수 있습니다.