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关键字-创新互联
标题路径:https://www.cdcxhl.com/article48/hhhhp.html

成都网站建设公司_创新互联,为您提供网页设计公司虚拟主机定制网站面包屑导航企业网站制作全网营销推广

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名