ios_oc @property和@synthesize以及属性介绍

@property和@synthesize为oc 2.0添加的新特性,自动生成某个类成员变量的存取方法,减少代码冗余,并且更高效。

属性介绍:

readwrit:默认 会自动生成存取器。

assign :主要出来基础类,比如int,float。如果声明基础类,assign是默认的。

@property (nonatomic, assign) NSString* myField

- (NSString*) myField {
    return myField;
}
- (void) setMyField: (NSString*) newValue {
    myField = newValue;
}

readonly:只生成get方法不生成set方法。

copy:会对对象进行克隆,生成对象的副本。此属性只对那些实行了NSCopying协议的对象类型有效

retain:会自动retain赋值对象,使引用计数+1,具体实现如下:

  注意: 把对象添加到数组中时,引用计数将增加对象的引用次数+1。
@property (nonatomic, retain) NSString* myField
- (NSString*) myField {
    return myField;
}

- (void) setMyField: (NSString*) newValue {
    if (newValue !=myField) {
        [myField release];
        myField = [newValue retain];
    }
}

natomic:默认属性,在多线程情况下会生成一些互斥加锁代码,避免变量的读写不同步的问题。

nonatomic:与natomic相反编译器少生成一些互斥加锁代码,可以提高效率。


参考:http://blog.csdn.net/mars2639/article/details/7352540

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值