NSString *someString = @"The string";
// 對象所占內存總是分配在堆空間中,而絕不是棧上。不能在棧中分配Objective-C對象。
// NSString stackString;// error:interface type cannot be statically allocated
NSString *anotherString = someString;// 只有一個NSString 實例,然而有兩個變量指向此實例,這說明當前棧幀里分配了兩塊內存,每塊內存的大小都能容下一個指針(32位架構--4B,64位架構--8B)。這兩塊內存里的值都一樣,就是NSString實例的內存地址。如圖:
圖1-1 此內存布局圖延時了一個分配在堆中的NSString實例,有兩個分配在棧上的指針
新聞熱點
疑難解答