zoukankan      html  css  js  c++  java
  • (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的命名,籍此来保护变量不会被不恰当的访问。

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

  • 相关阅读:
    tcp没用吗?为什么MOBA、“吃鸡”游戏不推荐用tcp协议
    这样做动画交互,一点都不费力!
    sql server 小记——分区表(上)
    vs中不得不会的一些小技巧(1)——细说查找
    Aforge.net之旅——开篇:从识别验证码开始
    Redis Hash操作
    Varint 数值压缩
    LevelDB Version
    LevelDB Cache机制
    LevelDB Compaction操作
  • 原文地址:https://www.cnblogs.com/hikoming/p/3504691.html
Copyright © 2011-2022 走看看