天下风云出我辈, 一入江湖岁月催. 皇图霸业笑谈中, 不胜人生一场醉.

(iOS)关于@property和@synthesize的理解(原创)

  开始学习ios的时候,就对一些objc的语法不理解,就比如@property和@synthesize,之前都是记住然后照着用,但是写的代码多了,对objc和ios有了一些理解,再加上最近用MRC,所以在各种内存检测和变量使用的过程中,探讨了一下,最终对它们的作用有了一定了解。

  一般@property和@synthesize是搭配使用的,用@property声明的变量,系统默认给他们做了setter和getter处理。

  property可以声明属性的各种属性。

  1.声明属性的访问方法:

  • getter=getterName
  • setter=setterName
    声明访问属性的设置与获取方法名。

  2.声明属性写操作权限:

  • readwrite
    声明此属性为读写属性,即可以访问设置方法(setter),也可以访问获取方法(getter),与readonly互斥。
  • readonly

  声明此属性为只读属性,只能访问此属性对应的获取方法(getter),与readwrite互斥。

  3.声明写方法的实现

  4.访问方法的原子性

  关于原子性,大家可以查一下操作系统的原子性操作。

  @synthesize 中可以定义 与变量名不相同的getter和setter的命名,籍此来保护变量不会被不恰当的访问。

  功能:让编译好器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。

posted @ 2014-08-08 17:29  hikoming  阅读(856)  评论(0编辑  收藏  举报
为窥探到宇宙的神秘而窃喜