搜尋

首頁  >  問答  >  主體

objective-c - 利用 %d 輸出 NSString 類型資料, 其結果依據是什麼?

NSString *numberString = @"1024";
NSLog(@"%d", numberString);

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


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

世界只因有你世界只因有你2811 天前582

全部回覆(2)我來回復

  • 大家讲道理

    大家讲道理2017-04-28 09:07:42

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

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

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-04-28 09:07:42

    野指針 一個很大的數字

    回覆
    0
  • 取消回覆