OC学习之属性关键字以及set和get方法

//属性的属性分为三大类

//1.读写性控制

//》readOnly只读 只会生成get方法 不会生成set方法

//》readwrite可读可写 会生成set方法 也会生成get方法(默认设置)

//> setter =aa:(需要加冒号)重新设置set方法名称  名称将会变成后边写得名称 aa前没有set

//getter =bb(不需要加冒号)重新设置get方法名称 名称就是重新设置的

//》 一般情况下 不会单独去设置set get 的方法名称


//2.原子性控制

//》atomic:设置这个 关键字之后 在访问的时候 会有加锁和解锁的过程 大多数是在为线程做考虑 为了线程的安全(默认设置)

//》nonatomic:普通的set get 方法通常情况下我们基本使用此关键字



//3.语意设置:

//》assain:非对象类型使用

//retain:任何对象类型都可以使用

//copy:只有遵守NSCopying的对象类型才可以使用(不遵守的对象类型会崩溃)

//使用总结:对象类型除了NSString*之外全部用retain;

.h

@property(nonatomic,assign)NSInteger age;

@property(nonatomic,retain)NSArray*array;

@property(nonatomic,copy)NSString *name;

//除了(NSstring*)之外其他对对象只能使用retain

.m

@synthesize age =_age;

@synthesize array =_array;

@synthesize name =_name;

//assain修饰的属性 生成的set get方法

-(void)setAge:(NSInteger)age

{

    _age =age;

}

-(NSInteger )age

{

    return _age;

}

//retain 修饰的属性

-(void)setArray:(NSArray *)array

{

    if (_array !=array)

    {

        [_array release];

        _array =[array retain];

    }

}


-(NSArray*)array{

    return [[_array retain]autorelease];

}

//copy修饰的属性

-(void)setName:(NSString *)name

{

    if (_name !=name) {

        [_name release];

        _name = [name copy];

    }

}

-(NSString *)name

{

    return [[_name retain]autorelease];

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值