NSString *numberString = @"1024";
NSLog(@"%d", numberString);
如上程式碼,輸出結果感覺上是一個很隨機數字57835920
。所以比較好奇這個數字具體是怎麼得出的呢?
故事背景:在練習陣列資料排序的時候,為了偷懶直接把NSString 類型的資料直接用<
、>
做了比較,最初只是自己模擬了幾個數字作為資料來源,但是後來資料量大了發現有排序有錯誤,Debug 過程中發現是由於沒有把NSString
類型資料轉換成NSInteger
類型導致。最終呼叫 .integer
屬性解決此偷懶導致的 BUG。
但是正式因此 BUG 才會好奇,直接用 %d
輸出 NSString
類型數據,結果是依據什麼返回的?
numberString的型別不是NSString, 是NSString*, 是一個指標, 也就是一個整數
這個整數的意思是..那個NSString物件在記憶體中的位址
野指針 一個很大的數字