Daily iOS
메모리·ARC

unowned 접근 위험

옵셔널 언래핑이 귀찮아서 모든 delegate를 weak 대신 unowned로 선언하려는 동료가 있습니다. unowned 참조가 옵셔널이 아닌 이유는 무엇입니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

unowned는 대상이 나보다 먼저 사라지지 않는다는 약속을 전제로 하는 참조라서 런타임이 대상 해제 시 nil로 바꿔 주지 않고, 그래서 옵셔널일 필요가 없는 대신 약속이 깨져 해제된 대상에 접근하면 nil 검사 대신 즉시 트랩이 난다.

받은 질문 공유