容器中对象的特点
特点1:当向数组或者字典,集合中添加对象的时候,被添加对象的引用计数加1
NSMutableArray *array = [NSMutableArrayarrayWithCapacity:0];这个array是遍历构造器创建的,所以不需要release.遍历构造器创建的对象返回的是autorelease对象,是不定时释放的,出了创建自己的那个方法再被使用,就有可能奔溃.
[arrayaddObject:per1];这个时候per1的引用计数器+1
特点2:当从数组或者字典,集合中移除对象的时候,被移除的对象的引用计数减1
[array removeObject:pe r1];
NSLog(@"%ld", [per1retainCount]);
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:0];
[array addObject:per1];
[array addObject:per1];
NSLog(@"%ld", [per1retainCount]);
特点3:当数组或者字典,集合被系统回收时候,这些对象会对里面存储的其他对象先释放
[array release];注意这个array是前面alloc的,所以需要alloc.如果是便利构造器生成的,则不需要release.
NSLog(@"%ld", [per1retainCount]);
dealloc是系统调用的 不需要手动调用