Objective-C中的特性@property和@synthesize

1. "@property"功能是声明当前属性为编译器自动生成set/get 方法

2. "@synthesize"功能是让编译器自动生成set/get方法

3. "@property"的关键字涉及到nonatomic,retain,copy,assign,readwrite,readonly这些关键字。一般在".h"文件中声明时的格式为:

@property(nonatomic ,retain|copy|assign|readwrite|readonly)className propertyName;

在@property后紧跟的括号内的属性的设置将直接影响到编译器自动生成的set/get方法的形式。

nonatiomic,这部分将影响编译器合成访问器时不考虑线程安全,如果代码中不涉及多线程的内容,使用这个属性即可。如果这个位置设为空,则默认为atomic形式,即考虑多线程的机制。

retain、copyassign将影响编译器自动生成的set方法。其中:

  • retain 自增一个propertyName的引用计数,
  • copy   复制propertyName
  • assign 单纯的赋值(这是针对非对象特性的)

readwrite时,propertName的值可以设置也可以获取,编译器自动合成set/get方法;readonly时,编译器只合成get方法。

转载于:https://www.cnblogs.com/Syjh-1991/archive/2013/05/22/3092141.html

Objective-C @property和@synthesize相关推荐

  1. IOS第三天(@property与@synthesize的用法)

    一.@property与@synthesize基本规范用法 1.@property 当编译器遇到@property时,会自动展开成getter和setter的声明 #import <Founda ...

  2. @property与@synthesize的差别

    上一篇文章我有讲到self.与_的差别,往往和这个问题相伴随的是我困惑的问题是"@property与@synthesize的差别" @property的使用方法 @interfac ...

  3. Objective-C中的@property和@synthesize用法

    @代表"Objective-C"的标志,证明您正在使用Objective-C语言 Objective-C语言关键词,@property与@synthesize配对使用. 功能:让编 ...

  4. Objective-C Property 和 Synthesize

    为什么80%的码农都做不了架构师?>>>    Objective-C中的@property.@synthesize及点语法都是与两个函数有关的,一是setter函数,另一个是get ...

  5. Objective-C 点语法 成员变量的作用域 @property和@synthesize关键字 id类型

    点语法 1.利用点语法替换set方法和get方法 方法调用 Student *stu = [Student new]; [stu setAge : 18]; int age = [stu age]; ...

  6. 黑马程序员--Objective-C之--@property和@synthesize关键字

    ------IOS培训期待与您交流! ------- property是Objective-C的关键词,与@synthesize配对使用,用来让编译好器自动生成与数据成员同名的方法声明.@synthe ...

  7. OC之@property和@synthesize

    在OC中经常使用get和set方法,但是当成员变量太多的时候,就要敲很多行get和set方法.在xcode4.4之前,为了简洁代码,可以使用@property声明get和set方法: @propert ...

  8. @property and @synthesize区别

    java的基础理解的. @property 相当于在java中的接口中使用,替代get  set方法,没有具体的方法操作. @synthesize 相当于在java中的类中使用,替代get  set方 ...

  9. 属性详解(@property/@dynamic/@synthesize)

    上一篇文章讲到, OC 2.0之后属性一旦声明,如果没有readonly修饰的话,当前类自动生成了setter和getter方法的声明, 并且会自动生成对应的实例变量(下划线 + 属性名).而sett ...

最新文章

  1. 虚拟机linux 8.04汉化,在虚拟机中快速安装 Ubuntu 18.04
  2. Flutter开发之爬坑集合(五)
  3. 集成极光推送遇到的问题
  4. apache php mysql 开发_Wndows下Apache+php+Mysql环境的搭建及其涉及的知识(转)
  5. Scala入门到精通——第十四节 Case Class与模式匹配(一)
  6. android 蓝牙各种UUID (转)
  7. linux入门系统那个好,初学Linux哪个发行版本好?这些更合适!
  8. 官方版.NET SDK连线更新(2011/01/19)
  9. css中英文混排 标点,浅析css中英文混排时行高不一样的原因及其解决方法
  10. Python自省(反射)指南 1
  11. 阿里云Serverless,全球第一!
  12. 计算机图形学完整笔记(七):曲线曲面 - 1
  13. 支付宝授权登陆php,php实现支付宝授权登录
  14. 显示器尺寸对照表_电脑显示器尺寸对照表(电脑显示器尺寸一览表)
  15. 如何从官网下载hibernate
  16. Flutter 启动页 消除白屏
  17. lemonldap java_Java LDAP操作
  18. 5.21 ticker的使用
  19. 用Python进行图文识别(OCR)
  20. 超详细Shell学习教程第二篇

热门文章

  1. Class与Style绑定
  2. PAT L2-014. 列车调度
  3. dockerfile指定jvm参数
  4. homework-04
  5. Project Explore 再现
  6. filter[过滤器]使用大全
  7. 10.25T2 二维线段树
  8. 在隐私的博弈时代,BCH为你保驾护航
  9. linux内存源码分析 - 内存压缩(同步关系)
  10. Java小工具:TimingTools