oc中属性以及属性的特性

1.掌握setter getter的作用以及书写格式

1.settergetter
在oc里,为实例变量赋值的方法称作setter(设置器)
读取实例变量值的方法称作getter(访问器)
无论是setter还是getter 内部操作的都是实例变量。
每个实例变量都需要一对setter和getter方法。

setter作用:为单一的实例变量赋值
setter 方法规范写法:-号,无返回值名字以set开头+要设置的变量的名(首字母大写):(setter有且只有一个参数(参数类型和实例变量类型相同)+实例变量名)
getter方法作用:获取单一实例变量的值
getter方法的命名规范:- 方法 ,有返回值,返回值类型和实例变量类型相同,方法名直接和实例变量名相同,无参数

2.属性
属性是OC2.0定义的语,提供了setter getter 方法的默认实现。
能在一定程度上简化程序代码,并且增强实例变量的访问安全性。
属性的定义:
属性的声明:使用@property声明属性例如:(@property NSString *name;)
相当于@interface 中声明了两个方法:
-(void)setName :(NSString *)name;
-(NSString *)name;
属性的实现:使用@synthesize实现属性(例如:@synthesize name = _name)

相当于@implementation实现了
-(void)setName:(NSString *)name;
-(NSString *)name;

3.属性的属性
第一类:读写性控制(readonlyreadwrite setter  getter)
如果读写性控制的关键字是readonly,是告诉编译器,只声明getter方法(无setter方法)
getter和setter的作用是对系统的方法做重命名,符合OC中的见明知意。
如果是readwrite,告诉编译器即声明setter又声明getter
readwrite是读写性控制的默认设置
 第二类:原子性控制(nonatomic atomic)
 如果原子性控制的关键字是atomic setter   getter方法在多线程访问下是绝对安全的。即setter getter内部做了多线程访问处理。原子性控制的默认设置是atomic
如果原子性控制的关键字是nonatomicsetter  getter 方法内部不会做多线程访问处理,仅仅是普通的setter getter方法。
第三类:语义设置(assin retain copy)
如果属性是非对象类型(比如:int  float 等)属性的语义设置使用assgin
 如果属性是对象类型(比如:NSString NSArray 等)属性的语义设置用retain
如果属性是对象类型并且想得到参数的copy使用 copy’关键字。
4.点语法
点语法是OC2.中定义的语法格式,提供了一种便捷的属性访问方式。
凡是符合系统默认settergetter 书写格式的方法都可以使用点语法。
属性是一对getter和setter方法,点语法是属性的另一种调用格式。
属性是OC的重要语法,属性是一组getter。setter 方法。内部对实例变量进行操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值