object-cproperty的使用方法

object-cproperty的使用方法

ID:8808745

大小:28.46 KB

页数:9页

时间:2018-04-08

object-cproperty的使用方法_第1页
object-cproperty的使用方法_第2页
object-cproperty的使用方法_第3页
object-cproperty的使用方法_第4页
object-cproperty的使用方法_第5页
资源描述:

《object-cproperty的使用方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、@property(nonatomic,retain)NSString*aString;property:属性的定义,相当于C语言的setter和getter方法。assign:简单的赋值,不更改索引的计数。copy:建议一个索引计数为1的对象,然后释放旧对象;retain:释放旧对象,将旧对象的值赋予新对象,再增加新对象的索引计数1。 针对具体的数据类型在属性定义应该这样选择:使用assign:对基础的数据类型,比如NSInterger,CGFloat和C数据类型(int,float,double,char等

2、等)。使用copy:针对NSString;使用retain:针对NSObject及其子类。使用nonatomic:单线程,防止在写未完成的时候被另外一个线程读取,造成数据读取出错。使用release:基于一般的初始化,使用alloc和init关键词初始化的,要在恰当的地方release掉,全局变量在dealloc方法里面release,常规变量在不需要的时候就要释放掉。简介:property组合了新的预编译指令和新的属性访问器语法。1、@property表示声明了对象的一个属性。例如:@propertyfloa

3、tsmsHandling;表示某个类的对象具有了一个float类型的名为smsHandling的属性。property自动生成了-setsmsHandling和-getsmsHandling两个方法来操作属性.2、@synthesize表示创建该属性的访问器(Ps: -setsmsHandling和-getsmsHandling两个方法是在这句存在的情况下才开始由编译器输出的).3、property支持点访问,比如:(假设拥有上面属性的类为A)A.smsHandling=0.3;4、property的扩展功能:

4、(以上介绍的是property的基本用法)   我们还可以生命具有其他属性的@property,用来表达我们希望特性具有某种行为的确切意愿。   @property(copy)NSString*name;//通过想name这个属性添加copy的方法,使编译器和类的使用者知道name对象将被复制。   关于属性的括号内的扩展支持如下:   1,getter=getterName,setter=setterName,设置setter与getter 的方法名   2,readwrite,readonly,设置可供访问

5、级       2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题   3,retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序(CC上有相关资料)   4,copy, setter方法进行Copy操作,与retain处理流程一样,先旧值release, 再Copy出新的对象, retainCount为1. 这是为了减少对上下文的依赖而引入的机制.   5,nonatomic, 非原子性访问,不加同步,多线程并发访问

6、会提高性能.注意,如果不加此属性,则默认是两个访问方法都为原子型事务访问.锁被加到所属对象   以上的使用方式:·使用assign:对基础数据类型(NSInteger,CGFloat)和C数据类型(int,float,double,char,等等)·使用copy:对NSString·使用retain:对其他NSObject和其子类   注:retain的实际语法为:-(void)setName:(NSString*)newName{if(name!=newName){[namerelease];name=[ne

7、wNameretain];//name’sretaincounthasbeenbumpedupby1}}什么是property?是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。如何使用?用法是固定的,注意下property后面小括号了跟的参数列表,nonatomic代表非原子性,既不支持多线程的同步,mac上可以根据具体情况考虑,IPhone上就加上把,retain代表对setter的对象加上一个retain

8、操作,同时也会release原有的object,copy顾名思义就是copysetter中参数的对象。看下面的例子:代码 @interfaceEngine:NSObject{}@end@implementationEngine-(NSString*)description{   return(@"engine");}@end@interfaceTier:NSObject{}@end@i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。