[회고] 공식문서의 중요성

Ben·2024년 7월 6일
0

iOS

목록 보기
18/23

이전의 'The difference between weak and unowned (via Side Table of RefCount.h)' 포스트를 통해 공식문서의 중요성을 깨달았다.

위 이미지는 Swift 공식 Repository - RefCount.h'Object lifecycle state machine' 에 대한 내용의 일부이다.

(#L116) "Object's refcounts are initialized as 1 strong, 1 unowned, 1 weak."

위 주석문을 통해 아래와 같이 강한참조로 클래스 인스턴스를 생성했을때,

class SomeClass {
    var property: String
    
    init?(value: String) { self.property = value }
}

var object: SomeClass? = SomeClass.init(value: "Some String..")

HeapObject 구조체의 InlineRefCounts가 가지는 refCounts 필드의 strong RC, unowned RC가 1의 값을 가지는 것은 이해를 했으나!

'weak RC도' 1로 초기화가 이루어지는게 맞나 궁금했다.

결과론적으로 #L116의 주석문에 의해 strong 1, unowned 1, weak 1의 값을 갖는것이 맞다!

이전 포스트 글을 작성했을 때, 여러 국내외 블로그를 참조하고 공식문서와 비교해보면서 공부하다보니 블로그가 틀린것인지 공식문서의 주석문이 잘못된것인지 판단이 흐려졌다.

몇몇 국내 블로그에서는 위의 'LIVE without side table 상태' 에서 인스턴스가 생성되는 시점에 weak RC의 값이 초기에 어떠한 값을 가지는지에 대해 빼먹고 설명한 글들도 보였다.

흐려진 판단상태에서 무엇이 진짜 정답인지 오랜시간동안 끙끙 앓다가 국내 ios 커뮤니티에 질문을 올렸다.

질문에 대한 답변은 얻었지만 그보다 더 중요한 답을 들을 수 있었다.

바로 블로그 위주의 학습방ㅂ법 보다는 공식 문서나 소스코드 등을 '직접 보고 판단할 수 있는 능력을 기르는 것!' 이다.

생각해보면 아무리 블로그라도 사람마다 각자 이해한 방식이 다 다르고, 그 이해를 바탕으로 본인들만의 스타일로 학습한 내용들을 정리한 것이기에 그 분들의 말이 100% 다 맞다고 할 수는 없다.

이번 일을 계기로 '남의 글을 통해 공부하는 방식은 "지양"하고, (단순히 참조만 할 것!) 공식문서를 통해 학습하고 "내가 스스로 판단" 할 수 있는 능력'을 길러야 할 것 같다. 🙂

profile
 iOS Developer

0개의 댓글