首页 > 代码库 > Automatic Reference Counting
Automatic Reference Counting
- (id)allocObject { id obj = [[NSObject alloc] init]; return obj;}- (id)object { id obj = [[NSObject alloc] init]; [obj autorelease]; return obj; }id obj1 = [obj0 allocObject];id obj2 = [obj0 object];
obj1持有对象,obj2不持有对象。
通过使用autorelease,可以使取得的对象存在,但自己不持有对象。(如何做到的?)
[obj2 retain];
通过retain方法将调用autorelease方法取得的对象变为自己持有。(retain多次会怎样?)
NSObject简化版alloc:
struct obj_layout { NSUInteger retained;};+ (id)alloc { int size = sizeof(struct obj_layout) + 对象大小; struct obj_layout *p = (struct obj_layout *)calloc(1, size); return (id)(p + 1);}
Automatic Reference Counting
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。