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];
本文探讨了Foundation框架中NSArray、NSMutableArray、NSDictionary等集合类对Cocoa对象的引用计数管理方式。详细介绍了添加和移除对象时,数组如何通过retain和release来管理对象的生命周期,并涉及NSMutableDictionary和NSMutableSet等容器的行为。
3672

被折叠的 条评论
为什么被折叠?



