- iOS从零基础到精通就业 Objective-C
- CSDN观看地址:http://edu.csdn.net/course/detail/3347
- 对象内存管理
-
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { //引用计数机制 当一个对象创建出来之后引用计数为1 当对象的引用计数为0的时候说明这块内存没有人在使用 可以回收 //ARC 自动引用计数 //MRC 手动引用计数 Person *p1 = [[Person alloc] init]; NSLog(@"%ld",[p1 retainCount]); [p1 retain]; NSLog(@"%ld",[p1 retainCount]); //引用计数减小 [p1 release]; [p1 release]; //自动释放池 @autoreleasepool { Person *p2 = [[[Person alloc] init] autorelease]; } //遍历构造器内部存在一个autorelease 所以便利构造器创建的对象不需要release NSMutableArray *array = [NSMutableArray array]; Person *p3 = [[Person alloc] init]; [array addObject:p3]; //当对象被添加到容器中的时候 引用计数会+1 NSLog(@"%ld",[p3 retainCount]); [p3 release]; //有四个人在使用同一块内存 引用计数为4 Person *p4 = [[Person alloc] init]; Person *p5 = [p4 retain]; Person *p6 = [p4 retain]; Person *p7 = [p4 retain]; [p4 release]; [p5 release]; [p6 release]; [p7 release]; return 0; }