위 코드를 사용하면 출력 결과가 매우 난수처럼 느껴집니다57835920
. 그럼 이 숫자는 어떻게 도출됐는지 궁금해요.
스토리 배경: 배열 데이터 정렬을 연습할 때 게으른 마음에 NSString 형식의 데이터를 <
및 >
과 직접 비교했습니다. 처음에는 몇 개의 숫자를 데이터 소스로 시뮬레이션했지만 나중에는 데이터가 볼륨이 커지면서 정렬 오류가 발생한 것으로 확인되었습니다. 디버깅 과정에서 NSString
유형의 데이터가 NSInteger
유형으로 변환되지 않았기 때문인 것으로 나타났습니다. 마지막으로 .integer
속성을 호출하여 게으름으로 인한 BUG를 해결합니다.
근데 공식적으로는 BUG 때문에 궁금해서 %d
를 직접 사용해 NSString
형 데이터를 출력하는데요.
numberString의 타입이 NSString이 아니고, 포인터 즉 정수인 NSString*입니다
이 정수의 의미는..메모리에 있는 해당 NSString 객체의 주소입니다
와일드 포인터 큰 숫자