Objective-C编程 - 1. 浅谈内存分配

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;

posted @ 2016-11-05 15:20  Master HaKu  阅读(249)  评论(0编辑  收藏  举报