OC点语法介绍和使用以及@property关键字-创新互联

使用"点语法"OC点语法介绍和使用以及@pro
perty关键字 Person *p =[Person new]; //点语法 //对象.属性名 //注意,此时 (p.age)并不是直接方法实例对象 //而是xcode可能到点语法(p.age)后,会帮我们自动替换 //p.age --替换--->[p setAge:18] p.age=18; //注意.此处 p.age出现在了等号的右侧 //设计上,当xcode 看到了p.age出行在等号的右侧后 //它会帮我们把p.age---替换成--->[p age]; int a= p.age; NSString *s =[p name];

@property

创新互联建站是专业的新兴网站建设公司,新兴接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新兴网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!@property是编译器的指令 编译器指令: 就是告诉编译器要作什么 @property 告诉编译器 声明属性的访问器(getter/setter)方法 好处:免去我们手工书写get和set方法繁琐的代码

@property用法

格式:
@property 类型名 实例变量名

用法:

1 1.在xcode4.4 之前,用于帮我们实现get/set方法的声明
2 2.在xcode 4.4之后,有稍微增强

使用注意:

 1 1.@property只能写在@interface @end中
 2 2.@property 用来自动生成成员变量的 get/set方法声明(xcode4.4 以前)
 3 告诉property要生成的get/set 方法声明的成员变量类型是什么
 4 告诉property要生成的get/set 方法是哪个属性的,属性名称去掉下划线
 5 
 6     如果写成了 @property int _age;
 7                   Person *p =[Person new];
 8                     p.age 就拿不到了
 9                     p._age;
10

@property 增强使用

1   Xcode4.4版本以后支持的
2   只使用 @property进行声明,类会自动帮你实现
3   操作的是带有下划线的实例变量
4 
5   如果没有手动声明成员变量,property会在.m文件中自动帮我们生成一个_开头的成员变量
6 
7   注意; 这个实例的生成与.m文件 是私有不能被子类使用的
8       get和set方法在.m中可以自己手动实现,但是当用增强时,get 、set只能手动实现一个

@property参数

 1  格式:
 2   @property(参数1,参数2) 数据类型 方法名
 3  参数类型      参数        说明
 4  原子性      atomic        对属性加锁,多线程下线程安全,默认值
 5           nonatomic      对属性不加锁,多线程下不安全,但是速度块
 6  读写属性      readwrite      生成getter、setter ,默认值
 7          readonly       只生成getter方法
 8  方法处理     assign        直接赋值,默认值
 9           retain        先release原来的值,再retain新增
10           copy          先release原来的值,再copy新增
11 
12 
13   @property(assign) int age;
14   int _age;
15   -(void)setAge:(int)age{
16     _age = age;
17   }
18 
19   @property (retain) Car * car;
20   Car _car;
21   -(void)setCar:(Car)car{
22     if(_car!=car){
23       [_car release];
24       _car =[car retain];
25     }
26   }
27 
28 1)内存管理相关参数
29   retain:对对象release旧值,retain新值 (适用于OC对象类型)
30   assign:直接赋值(默认,适用于非oc对象类型);
31   copy : release旧值,copy新值
32 
33   @property ( nonatomic,assign) Car *car;
34 
35     例如:在color的get set方法中修改age的值
36   @property(nonatomic,setter=setColor:,getter=color) int age;

网站名称:OC点语法介绍和使用以及@property关键字-创新互联
转载源于:http://hbruida.cn/article/hhhhp.html