简单讲解Objective-C的基本特性及其内存管理方式

2020-01-14 18:31:27于丽

(3)dealloc方法的代码规范

(a)一定要[super dealloc],而且要放到最后

(b)对self(当前)所拥有的的其他对象做一次release操作

-(void)dealloc

{

[_car release];

[super dealloc];

}

 


5、@property的参数

(1)内存管理相关参数

Retain:对对象release旧值,retain新值(适用于OC对象类型)

Assign:直接赋值(默认,适用于非oc对象类型)

Copy:release旧值,copy新值

 

(2)是否要生成set方法(若为只读属性,则不生成)

Readonly:只读,只会生成getter的声明和实现

Readwrite:默认的,同时生成setter和getter的声明和实现

 

(3)多线程管理(苹果在一定程度上屏蔽了多线程操作)

Nonatomic:高性能,一般使用这个

Atomic:低性能

 

(4)Set和get方法的名称

修改set和get方法的名称,主要用于布尔类型。因为返回布尔类型的方法名一般以is开头,修改名称一般用在布尔类型中的getter。

复制代码
@propery(setter=setAbc,getter=isRich) BOOL rich;

 

BOOL b=p.isRich;// 调用


 

 

6、内存管理中的循环引用问题以及解决

案例:每个人有一张身份证,每张身份证对应一个人,不能使用#import的方式相互包含,这就形成了循环引用。

新的关键字:@class 类名;——解决循环引用问题,提高性能

@class仅仅告诉编译器,在进行编译的时候把后面的名字作为一个类来处理。