手动:
通过程序员自己书写对象相关的语句(retain/release)来控制对象的引用计数 以达到灵活的内存释放。
手动内存管理的主意:
1,Xcode项目默认的都是自动内存管理的(ARC),需要关闭自动内存管理。
2,Person *p = [Person new];//对象p的引用引用计数器值为1 任何自己创建的对象,都归自己多有。 */
#import <Foundation/Foundation.h> #import "Person.h"
int main(int argc, const char * argv[]) { @autoreleasepool {
//创建实例对象 Person *p = [Person new]; //任何自己创建的对象,都归自己所有 //对于p对象空间来说,有一个所有者 NSUInteger rc = [p retainCount];//获得对象的 引用计数
NSLog(@"rc = %lu",rc); //通过自己手动的添加 retain 或者 release来管理。
//如果向释p的空间,必须保证p对象的引用计数为0 //想要达到0的话,需要让对象的饿引用计数-1 //[对象 release]; [p release]; //1--->0
//如果对象的引用计数为0,此时会调用对象的dealloc(临终遗言)的方法
} return 0; }
|