objective-c - 利用 %d 輸出 NSString 類型資料, 其結果依據是什麼?
世界只因有你
世界只因有你 2017-04-28 09:05:42
0
2
523
NSString *numberString = @"1024";
NSLog(@"%d", numberString);

如上程式碼,輸出結果感覺上是一個很隨機數字57835920。所以比較好奇這個數字具體是怎麼得出的呢?


故事背景:在練習陣列資料排序的時候,為了偷懶直接把NSString 類型的資料直接用<>做了比較,最初只是自己模擬了幾個數字作為資料來源,但是後來資料量大了發現有排序有錯誤,Debug 過程中發現是由於沒有把NSString 類型資料轉換成NSInteger 類型導致。最終呼叫 .integer 屬性解決此偷懶導致的 BUG。
但是正式因此 BUG 才會好奇,直接用 %d 輸出 NSString 類型數據,結果是依據什麼返回的?

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

全部回覆(2)
大家讲道理

numberString的型別不是NSString, 是NSString*, 是一個指標, 也就是一個整數

這個整數的意思是..那個NSString物件在記憶體中的位址

phpcn_u1582

野指針 一個很大的數字

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!