NSString *numberString = @"1024";
NSLog(@"%d", numberString);
如上代码,输出结果感觉上是一个很随机数字57835920
。所以比较好奇这个数字具体是怎么得出的呢?
故事背景:在练习数组数据排序的时候,为了偷懒直接把 NSString 类型的数据直接用<
、>
做了比较,最初只是自己模拟了几个数字作为数据源,但是后来数据量大了发现有排序有错误,Debug 过程中发现是由于没有把 NSString
类型数据转换成 NSInteger
类型导致。最终调用 .integer
属性解决此偷懒导致的 BUG。
但是正式因此 BUG 才会好奇,直接用 %d
输出 NSString
类型数据,结果是依据什么返回的?
大家讲道理2017-04-28 09:07:42
numberString의 타입이 NSString이 아니고, 포인터 즉 정수인 NSString*입니다
이 정수의 의미는..메모리에 있는 해당 NSString 객체의 주소입니다