objective-c - 利用 %d 输出 NSString 类型数据, 其结果依据是什么?
世界只因有你
世界只因有你 2017-04-28 09:05:42
0
2
559
NSString *numberString = @"1024";
NSLog(@"%d", numberString);

如上代码,输出结果感觉上是一个很随机数字57835920。所以比较好奇这个数字具体是怎么得出的呢?


故事背景:在练习数组数据排序的时候,为了偷懒直接把 NSString 类型的数据直接用<>做了比较,最初只是自己模拟了几个数字作为数据源,但是后来数据量大了发现有排序有错误,Debug 过程中发现是由于没有把 NSString 类型数据转换成 NSInteger 类型导致。最终调用 .integer 属性解决此偷懒导致的 BUG。
但是正式因此 BUG 才会好奇,直接用 %d 输出 NSString 类型数据,结果是依据什么返回的?

世界只因有你
世界只因有你

全員に返信(2)
大家讲道理

numberString の型は NSString ではなく、ポインタ、つまり整数である NSString* です

この整数の意味は...メモリ内の NSString オブジェクトのアドレスです

いいねを押す +0
phpcn_u1582

ワイルドポインター大きな数字

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!