事實上在我平常的時候就是看編譯器需要什麼Type,就給他什麼Type。根本沒有仔細去暸解 NSInterger與 Int的差異,在面試時被問到時還真的頓時不知道怎麼回答。我當時的回答是 NSInterger 是 Objective-C 封裝的物件 (誤)。
在c語言中,int和long的字節數是和操作系統指針所佔的數值類型;
但c語言中說,long的長度永遠大於或等於int;
Objective-c裡,蘋果的官方文檔中總是推薦用NSInteger;
原來在蘋果的api實現中,NSInteger是一個封裝,它會識別當前操作系統的數值,自動返回最大的類型。
NSInteger與int的區別是NSInteger會根據系統的數值(32或64)自動選擇int的最大數值(int或long)還有就是他和NSString一樣都可以是物件。