Objectcproperty的使用方法.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Objectcproperty的使用方法

@property(nonatomic,retain) NSString *aString; property:属性的定义,相当于C语言的setter和getter方法。 assign:简单的赋值,不更改索引的计数。 copy:建议一个索引计数为1的对象,然后释放旧对象; retain:释放旧对象,将旧对象的值赋予新对象,再增加新对象的索引计数1。 ? 针对具体的数据类型在属性定义应该这样选择: 使用assign:对基础的数据类型,比如NSInterger,CGFloat和C数据类型(int,float,double,char等等)。 使用copy:针对NSString; 使用retain:针对NSObject及其子类。 使用nonatomic:单线程,防止在写未完成的时候被另外一个线程读取,造成数据读取出错。 使用release:基于一般的初始化,使用alloc和init关键词初始化的,要在恰当的地方release掉,全局变量在dealloc方法里面release,常规变量在不需要的时候就要释放掉。 简介: property组合了新的预编译指令和新的属性访问器语法。 1、@property 表示声明了对象的一个属性。例如: @property float smsHandling; 表示某个类的对象具有了一个float类型的名为smsHandling的属性。 property自动生成了 -setsmsHandling 和 -getsmsHandling两个方法来操作属性. 2、@synthesize 表示创建该属性的访问器(Ps:?-setsmsHandling 和 -getsmsHandling两个方法是在这句存在的情况下才开始由编译器输出的). 3、property支持点访问,比如:(假设拥有上面属性的类为A)A.smsHandling = 0.3 ; 4、property的扩展功能:(以上介绍的是property的基本用法) ? ? ?我们还可以生命具有其他属性的@property,用来表达我们希望特性具有某种行为的确切意愿。 ? ? ?@property (copy) NSString * name;//通过想name这个属性添加copy的方法,使编译器和类的使用者知道name对象将被复制。 ? ? ?关于属性的括号内的扩展支持如下: ? ? ? 1,getter=getterName,setter=setterName,设置setter与getter ? 的方法名 ? ? ?2,readwrite,readonly,设置可供访问级 ? ? ? ? ? ? ?2,assign,setter方法直接赋值,不进行任何retain操作,为了解决原类型与环循引用问题 ? ? ?3,retain,setter方法对参数进行release旧值再retain新值,所有实现都是这个顺序(CC上有相关资料) ? ? ?4,copy,?setter方法进行Copy操作, 与retain处理流程一样, 先旧值release,?再Copy出新的对象,?retainCount为1.?这是为了减少对上下文的依赖而引入的机制. ? ? ?5,nonatomic,?非原子性访问, 不加同步, 多线程并发访问会提高性能. 注意, 如果不加此属性, 则默认是两个访问方法都为原子型事务访问. 锁被加到所属对象 ? ? ?以上的使用方式: 使用assign: 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char, 等等) 使用copy: 对NSString 使用retain: 对其他NSObject和其子类 ? ? ?注: retain的实际语法为: - (void)setName:(NSString *)newName { if (name != newName) { [name release]; name = [newName retain]; // name’s retain count has been bumped up by 1 } } 什么是property? 是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。 如何使用? 用法是固定的,注意下property后面小括号了跟的参数列表,nonatomic代表非原子性,既不支持多线程的同步,mac上可以根据具体情况考虑, HYPERLINK / \t _blank IPhone上就加上把,retain代表对setter的对象加上一个retain操作,同时也会releas

您可能关注的文档

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档