obc学习笔记3

来源:互联网 发布:2017如何开淘宝店铺 编辑:程序博客网 时间:2024/06/01 17:25

内存管理:

Cocoa采用引用计数的技术,当alloc,new,copy消息创建对象时,引用计数器+1,retain +1,release -1,为0时对象dealloc被销毁,占用的内存被释放.获得引用计数器当前值retainCount

访问方法最佳实践:先保留新对象,然后释放旧对象

自动释放池:
创建:@autoreleasepool或NSAutoreleasePool对象,关键字比对象更快
自动释放池以栈的形式存在,自动释放池销毁时会向对象发出release消息

内存管理规则:
1.通过new,alloc,copy创建的对象要释放或者自动释放[NSObject autorelease];
2.其他方法获得的对象不用管;
3.retain的对象必须release,并且次数一致。

ARC自动引用计数:
垃圾回收在运行时工作,而ARC在编译时工作,自动插入retain和release,两者不能同时使用。ARC只对对象指针有效:代码块指针,obc对象指针和_ attribute _类型定义的指针。

归零弱引用:

_weak NSString *string;@property(weak) NSString *string;_unsafe_ unretained//关键字unsafe_ unretained//特性,与关键字冲突_strongstrong

拥有者权限(指针所有权):

_bridge//传递指针不传递所有权_bridge_retained//所有权交给non-ROP上并计数器+1_bridge_transfer//所有权交给ROP

异常:

@throw exception//所有对象[exception raise]//NSException,两者选一

@finally会在下一个@throw抛出异常之前被调用,注意僵尸异常

原创粉丝点击