您的位置:首页 > 职场人生

黑马程序员--IOS_学习笔记_内存管理相关@porperty

2014-12-14 14:29 363 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、@property

1、在OC中可以通过如下形式声明属性:

@porperty (——————) Car *_car;

2、括号里面的选项分为4大类。

1. SET方法内存相关。

1> retain :对象 release旧值, retain新值。

2> assign : 基本类型,直接赋值,默认的

3> copy :和协议相关,也有retain的功能。

2. 读写方式

1> readwrite 默认。

2> readonly

3. 多线程相关

1>nonatomic : 性能高, 不加锁。

2>atomic : 性能低 默认

4. setter和getter的方法名。

1> setter = 方法名 一般不用,当返回的数据类型是布尔类型的时候通过getter = isRich, 来判断是否有钱,

规范化。

2> getter = 方法名。

3、使用@property系统自动生成属性方法

使用 @porperty (retain) Car *car;

系统会自动生成

- (void) setCar:(Car*)car

{

if(car != _car)

{

[_car release];

_car = [car retain];

}

}

这样程序员不用重复写大量的重复的代码了。

4、实际开发中使用的形式

设计一个人类,

typedef enum (sexMan,sexWoman) Sex;

typedef struct (int Year; int Month; int Day) Date;

@interface Uer : NSObject

@porperty (nonatomic , retain, readwrite) NSString *name; 系统可以生成大量本应该程序员写的重复代码。自动优化内存,release,retain

@porperty (nonatomic, retain, readwrite) NSString *phone;

@porperty (nonatomic, assign,readwrite) Sex sex;

@porperty (nonatomic, assign, readwrite) Date date;

@end // User

总结:使用@porperty可以大大减少重复的代码量,系统会自动生成优化后的高效代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: