- 使用assign:对基础数据类型(NSInteger)和C数据类型(int,float,double,char等)。
使用copy:对NSString;
使用retain(引起引用计数加1):对其他NSObject(实例对象)和其子类;
- 属性关系有两种主要类型:strong和weak,相当于非ARC环境里的retain和assign。只要存在一个强引用,对象就会一直存在,不会被销毁。
- Objective-C中一直存在循环引用的问题,但在实际应用中很少出现循环引用。对于过去那些使用assign属性的地方,在ARC环境中要使用weak代替。大部分引用循环是由委托(delegate)引起的,所以应该总是把delegate属性声明为weak。当引用的对象被销毁之后,weak引用会被自动置为nil,与assign相比这是一个巨大的进步,因为assign可以指向被释放掉的内存,导致程序崩溃。
- 空指针:没有存储任何内存地址的指针(NULL指针)
- 野指针:所指对象被销毁,它所占用的内存已是垃圾内存.
网友评论