Foundation framework中用于收集cocoa对象的集合有:NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet等
将一个对象添加到一个数组中, 那么数组会对对象进行一个retain
当数组移除一个对象之后, 会给这个对象发送一条release消息
当数组对象释放之后, 会给数组中所有的对象发送一条release消息
Person *p1 = [Person new];
NSLog(@"%lu",p1.retainCount);
NSMutableArray *arr = [NSMutableArray array];
[arr addObject:p1];
NSLog(@"%lu",p1.retainCount);
[p1 release];
[p1 release];
// [arr removeObject:p1];
// [arr release];
Person *p2 = [Person new];
NSLog(@"%lu",p2.retainCount);
NSMutableDictionary *ditM = [NSMutableDictionary dictionary];
[ditM setValue:p2 forKey:@"1"];
NSLog(@"%lu",p2.retainCount);
[p2 release];
[p2 release];
// [ditM removeObjectForKey:@"1"];
// [ditM release];
Person *p3 = [Person new];
NSLog(@"%lu",p3.retainCount);
NSMutableSet *set = [NSMutableSet set];
[set addObject:p3];
NSLog(@"%lu",p3.retainCount);
[p3 release];
// [p3 release];
// [set removeObject:p3];
[set release];