Objective-C語言的對象類型都必須用指針,對象所占的記憶體是在堆(heap)上配置設定的。
NSString也必須在堆上配置設定,是以必須用指針。
NSString *someString = @"here is the string";
NSString *anotherString = someString;
上面例子的記憶體分布圖如下:
配置設定在堆中的記憶體必須直接管理,配置設定在棧上用于儲存變量的記憶體會在其棧幀彈出時自動清理。
Objective-C中記憶體管理的機制叫自動引用計數(ARC)。
CGRect是結構體,是棧對象,是以不需要使用指針。
CGRect frame;
frame.origin.x = 0.0f;
frame.size.width = 100.0f;