欢迎来到天天文库
浏览记录
ID:38160943
大小:515.79 KB
页数:5页
时间:2019-06-06
《objective-c属性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、@property与@synthesize配对使用1、@property和@synthesize都是Objective-c关键字。2、@property和@synthesize使用都是配对使用的。3、在@property:声明用于自动创建property属性变量的getter和setter.在@Synthesize:声明实现了property属性变量的getter和setter.4、@property声明放在.h头文件中。在interface:@property[(attribute1,attribute2,attribute3)]dataType(数
2、据类型)variableName(变量名)@Synthesize声明放在.m实现文件中在implementation:@synthesizevariableName例子:创建Attribute工程添加GetterAndSetter类内容如图:5、自从xcode4.5版本及以后的版本,@synthesize可以省略。1、AppDelegate类中的代码如下:2、启动运行界面和结果结果:1、属性列表参数的讲解第一个位置的属性atomic:线程保护(默认),一种线程保护技术,防止在未完成读写操作时,被另一个线程读取,造成数据错误,耗费系统资源。(原子性访问)
3、nonatomic:非原子性访问,不加同步,禁止多线程。第二个位置的属性assign:针对于基础数据类型和C数据类型(默认)setter方法直接赋值,不进行retain操作,不会发生引计数变化。retain:setter先进行release旧值,然后retain新值。代码表示:@property(retain)Dog*thedog等价于:-(void)setThedog(Dog*)newThedog{if(thedog!=newThedog){[thedogrelease];thedog=[newThedogretain];}}-(Dog*)thedo
4、g{[thedogretain];return[thedogautorelease];}copy:setter进行Copy操作,先release,然后再copy代码:@property(copy)Dog*thedog等价代码:-(void)setThedog(Dog*)newThedog{if(thedog!=newTheDog){[thedogrelease];thedog=[newThedogcopy];}}-(Dog*)thedog{[thedogretain];return[thedogautorelease];}第三个位置的属性可读属性:re
5、adonly,readwritereaderwrite:(默认)通过加入这个readwrite属性变量就会获取getter和setter方法。Readonly:这个属性加入之后就是表示改变量只能有getter方法,不含有setter方法。
此文档下载收益归作者所有