Objective-C语言关键词property
来源:互联网 发布:美工最好的页游 编辑:程序博客网 时间:2024/06/07 22:18
@property
简介
Objective-C语言关键词,与@synthesize配对使用。
功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。
如:
1、在头文件中:
@property int count;
等效于在头文件中声明2个方法:
- (int)count;
-(void)setCount:(int)newCount;
2、实现文件(.m)中
@synthesize count;
等效于在实现文件(.m)中实现2个方法。
- (int)count
{
return count;
}
-(void)setCount:(int)newCount
{
count = newCount;
}
以上等效的函数部分由编译器自动帮开发者填充完成,简化了编码输入工作量。
格式
声明property的语法为:
@property (参数1,参数2) 类型 名字;
如:
@property(nonatomic,retain) UIWindow *window;
其中参数主要分为三类:
读写属性: (readwrite/readonly)
setter语意:(assign/retain/copy)
原子性: (atomicity/nonatomic)
各参数意义如下: readwrite
产生setter\getter方法
readonly
只产生简单的getter,没有setter。
assign
默认类型,setter方法直接赋值,而不进行retain操作
retain
setter方法对参数进行release旧值,再retain新值。
copy
setter方法进行Copy操作,与retain一样
nonatomic
禁止多线程,变量保护,提高性能
参数类型详解
参数中比较复杂的是retain和copy,具体分析如下:
getter分析
1、@property(nonatomic,retain)test* thetest; @property(nonatomic ,copy)test* thetest;
等效代码:
-(void)thetest
{
return thetest;
}
2、@property(retain)test* thetest;
@property(copy)test* thetest;
等效代码:
-(void)thetest
{
[thetest retain];
return [thetest autorelease];
}
setter分析
1、
@property(nonatomic,retain)test* thetest;
@property(retain)test* thetest;
等效于:
-(void)setThetest:(test *)newThetest {
if (thetest!= newThetest) {
[thetestrelease];
thetest= [newThetest retain];
}
}
2、@property(nonatomic,copy)test* thetest;
@property(copy)test* thetest;
等效于:
-(void)setThetest:(test *)newThetest {
if (thetest!= newThetest) {
[thetestrelease];
thetest= [newThetest copy];
}
}
- Objective-C语言关键词property
- Objective-C语言关键词,@property与@synthesize
- Objective-C语言关键词,@property与@synthesize使用。
- Objective-C语言--@property
- Objective-C语言关键词,@class
- @代表“Objective-C”的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用。 功能:让编译好器自动编
- Objective-C语言关键词,与@synthesize配对使用。
- objective-c property
- objective-c property
- Objective-C 2.0 @property
- Objective-c Property define
- Objective C @property 参数
- objective-c @property 使用
- property 学习[Objective C]
- Objective-C @property关键字
- Objective-C中的@property
- Objective-C - @property参数
- Objective-C中的@property
- Linux系统使用笔记(文件权限与目录配置)--鸟哥的私房菜
- 《Effective C++》读书笔记之item39:明智而审慎地使用private继承
- struts标签库:bean:write web.xml
- Android开发最佳学习路线图
- Android详细的对话框AlertDialog.Builder使用方法
- Objective-C语言关键词property
- 三星i9100 Firefox OS 刷机包
- 多线程同步之——monitor
- Quest收到23亿美元收购要约 收购方或为戴尔
- struts标签库:bean:write struts-config.xml
- C语言点滴
- 堆的应用:Sequence
- Linux SPI驱动之笔记
- firefox os懒人一键安装测试包for windows