首页 > 移动平台 > 详细

iOS开发基础之ivars(实例变量)与@property(属性)

时间:2015-06-24 18:02:38      阅读:325      评论:0      收藏:0      [点我收藏+]

Objective-C带来了一个重大改进就是Non-fragile ivar。使得i一个类可以随意增加实例变量,不必对子类重新编译。对框架开发者(如苹果)有重大意义。

最新的编译器支持@property可以自动synthesize实例变量。等于ivar+getter+setter方法。 


属性修饰关键字

  • atomic。LLVM 4新增加的特性。是指存取器方法是thread-safe。并不保证整个变量是thread-safe的。如 NSMutableArray *stuff。self.stuff和self.stuff  = otherStuff 是线程安全的。但是ObjectAtIndex不是。
  • copy。对于非可变类(NSString,NSArray)通常用copy修饰。因为若把可修改的子类,如NSMutableString赋值给父类NSString,这种情况属性所指向的对象可能被其他调用者改变。
  • weak。非拥有关系。与assign类似。与unsafe_unretained区别是,当属性所指对象的内存被回收时,属性值也会清空(置为nil)。

iOS开发基础之ivars(实例变量)与@property(属性)

原文:http://www.cnblogs.com/bitnpc/p/4598036.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!