1、Objective-C的对象锁分配的内存总是在“堆空间”中,不会分配在“栈”上,不能在“栈”中分配Objective-C的对象(需要深入研究一下Objective-C的内存分配机制),而指向对象的指针是分配在“栈”上面的。如下图
1.jpg
2、尽量用static const 来替换#define。因为#define有可能被其他文件或类重复引入时被覆盖掉。而static const修饰时,重复覆盖会报错。
3、在对象内部读取属性数据时,尽量直接通过实例变量来读取_property而不是self.property(懒加载除外)。因为使用self.语法会调用该属性的get方法,通过实例变量读取时会直接访问该属性内存地址读取。效率会高点。写入数据时应该通过点语法来写入,因为ARC模式下,set方法会隐形加上保存新值,然后释放久值在设置属性。
网友评论