objective-c内存管理是纯手动管理,稍微加了些自动方法autorelease。java/.net都是全自动垃圾回收的。
遵循几大原则:
1、谁创建谁释放,其他函数返回的object,我们不能去release,在函数中使用copy,alloc,retain对象retaincount+1后要有对应的release或autorelease使retaincount-1。
2、在一个类方法中@property自己的成员参数一般要property(retain),之后必须在dealloc中调用release方法。
3、使用便利构造方法如:[NSString StringWithFormat:]这类对象不需要自己release。
另外对于每一个Runloop(一个UI事件,Timer call,委托)系统会隐式创建一个Autorelease。
Autorelease来避免频繁申请/释放内存。