uitabbarcontroller 클래스 에서 selectedIndex프로퍼티가 갖는 디폴트 값

임혜정·2024년 8월 1일
0

selectedIndex 프로퍼티는 현재 선택된 탭의 인덱스.

https://developer.apple.com/documentation/uikit/uitabbarcontroller

이 프로퍼티의 정확한 디폴트 값은 NSNotFound로서 -1라는 상수인데
* NSNotFound, 결과를 찾을 수없음을 의미

UIKit에서 selectedIndex가 정의되지 않았을 때 첫 번째 항목(인덱스 0)을 기본 선택으로 처리하기로 정의했다.
이 문장에 대한 공식문서나 내부코드는 찾을 수 없으나 아래 문서나 직접 테스트로서 유추할 수 있다.

"Returns the index of the selected row in the specified component."
명시적으로 언급하지않으나 일반적으로 0 반환


깊은 내용

NSNotFound?

  1. Foundation 프레임워크에서 사용되는 상수
  2. NSInteger타입, 배열과 문자열에서 특정 요소나 부분 문자열을 찾지 못할 시 NSNotFound가 튀어나와 '없어!!'라고 알려주는 것
  3. 일반적으로 -1값을 가짐

https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621171-selectedindex


굳이 NSNotFound를 만들고 또 왜 그것을 -1값으로 정의하지? 찾을 수 없을시 바로 0으로 처리해도 되는 것 아닌가

  1. 프로그래밍 관행
    많은 프로그래밍 언어와 시스템에서 오래전부터 -1을 "찾지 못함" 또는 "오류" 상태를 나타내는 데 사용해 왔다.
  1. 0과 구분
    0은 배열의 첫 번째 인덱스를 가르키는데 0을 "찾지 못함"으로 사용하면 실제 첫 번째 요소를 찾은 것과 구분이 어려울 수 있으니까
  1. 오버플로우 방지
    unsigned 정수 타입에서 0에서 1을 빼면 매우 큰 양수가 되어 버그를 일으킬 수 있다.
profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️

0개의 댓글