ios_oc @property和@synthesize以及属性介绍
2013-12-25 13:17
323 查看
@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相反,编译器少生成一些互斥加锁代码,可以提高效率。
参考:/article/2957679.html
属性介绍:
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相反,编译器少生成一些互斥加锁代码,可以提高效率。
参考:/article/2957679.html
相关文章推荐
- IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路
- ios_oc 程序执行过程概述
- 激光推送(ios,安卓)
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- IOS开发---菜鸟学习之路--(二十一)-利用正则表达式解析URL获取其中的参数
- IOS开发---菜鸟学习之路--(二十)-二维码扫描功能的实现
- IOS中Json解析的四种方法
- IOS开发---菜鸟学习之路--(十九)-利用NSUserDefaults存储数据
- IOS开发---菜鸟学习之路--(十八)-利用代理实现向上一级页面传递数据
- iOS学习笔记——标签栏(TabBar)
- iOS学习笔记——导航栏与标签栏结合
- iOS学习笔记——导航栏(Navigation)
- IOS NSConditionLock 条件锁 NSCondition 断言
- iOS: NSUserDefaults 要注意的地方 尤其首次设置默认值的方法
- IOS消息传递机制
- IOS中BLE4.0后台运行
- IOS开发中的变量、方法、属性
- iOS中使用blend改变图片颜色
- ios xcode cannot run using the selected device
- IOS中Json解析的四种方法