内存管理可以说是 iPhone 开发中最重要也最令人头疼的关键点。CocoaChina 版主“lvyile”总结了内存管理中最应注意的事项,分别是:
- 通过分配或复制创建的对象保持计数为 1;
- 假设任何别的方法获取的对象保持计数为1, 而且在自动释放池中,要想在当前执行范围外使用该对象,就必须保持它;
- 向集合添加对象时它就被保持,从集合移走对象时就被释放。释放集合对象(如 NSArray )会释放该集合当中所有的对象;
- 确保有多少个 alloc, copy, mutableCopy 或 retain 消息就有多少 release 或 autorelease 消息发送给该对象。换句话说,确保您代码的平衡;
- 在访问方法设置属性时先保持,再释放;
- 在程序中用 @"..." 结构创建的 NSString 对象是有效常量,向它们发送 retain 或者 release 消息没有用;
- 使用便利构造方法创建的对象(如 NSString 的 stringWithFormat )可以被认为会自动释放;
- 在使用你自己的参数实例时,需要实现 -dealloc 方法来释放。