메모리·ARC
unowned 접근 위험
옵셔널 언래핑이 귀찮아서 모든 delegate를 weak 대신 unowned로 선언하려는 동료가 있습니다. unowned 참조가 옵셔널이 아닌 이유는 무엇입니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
옵셔널 언래핑이 귀찮아서 모든 delegate를 weak 대신 unowned로 선언하려는 동료가 있습니다. unowned 참조가 옵셔널이 아닌 이유는 무엇입니까?
unowned는 대상이 나보다 먼저 사라지지 않는다는 약속을 전제로 하는 참조라서 런타임이 대상 해제 시 nil로 바꿔 주지 않고, 그래서 옵셔널일 필요가 없는 대신 약속이 깨져 해제된 대상에 접근하면 nil 검사 대신 즉시 트랩이 난다.