`

Objective-C语言@property,与@synthesize配对使用

 
阅读更多
简介
  Objective-C语言关键词,与@synthesize配对使用。
  功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。
  如:
  1、在头文件中:
      @property int variable;

  等效于在头文件中声明2个方法:
  - (int)variable;
  -(void)setVariablet:(int)newVariable;

  2、实现文件(.m)中
  @synthesize variable;

  等效于在实现文件(.m)中实现2个方法。
  - (int)Variable
  {
  return variable;
  }
  -(void)setVariable:(int)newVariable
  {
  variable = newVariable;
  }

  以上等效的函数部分由编译器自动帮开发者填充完成,简化了编码输入工作量。
编辑本段
格式

  声明property的语法为:
  @property (参数1,参数2) 类型 名字;
  如:
  @property(nonatomic,retain) Variable *variable;
  其中参数主要分为三类:
  读写属性: (readwrite/readonly)
  setter语意:(assign/retain/copy)
  原子性: (atomicity/nonatomic)
  各参数意义如下:
  readwrite
  产生setter\getter方法
  readonly
  只产生简单的getter,没有setter。
  assign
  默认类型,setter方法直接赋值,而不进行retain操作
  retain
  setter方法对参数进行release旧值,再retain新值。
  copy
  setter方法进行Copy操作,与retain一样
  nonatomic
  禁止多线程,变量保护,提高性能
分享到:
评论

相关推荐

    Objective-C语言教程、案例与项目资源详解.docx

    ### Objective-C语言教程、案例与项目资源详解 #### 一、Objective-C基础知识 **1.1 类与对象** Objective-C的核心概念是类和对象。类是对象的模板或蓝图,它定义了对象应该具备哪些属性(如变量)和行为(如方法...

    Objective-C中的@property和@synthesize用法详解

    相信每个初学者对@property和@synthesize都感到非常的陌生,在此给大家分享下我的自己的理解,有不当之处,还望多多指教。详细说明文章在下面连接http://blog.csdn.net/comeontom/article/details/7455459

    Objective-C语言教程与案例.zip

    2. **语法结构**:Objective-C的语法有其独特性,比如它的方法定义和调用方式,以及在C语言基础上添加的“@”符号,如@property和@synthesize关键字。文档可能详细解释了这些语法元素的使用。 3. **Foundation框架*...

    举例讲解Objective-C中@property属性的用法

    为了能使用`.`操作符,我们需要声明`@property` 并且`@synthesize` 来创建对应的getter和setter方法。例如: ```objc @interface BaseClass : NSObject @property (nonatomic, copy) NSString *name; @end @...

    iPhone开发资料之Objective-C语言简介

    Objective-C中的字符串处理通常不使用C语言的字符数组,而是使用`NSString`类。`NSString`是一个不可变的字符串对象,支持Unicode,方便进行格式化和内存管理。创建字符串可以通过直接赋值或使用`stringWithFormat:`...

    Objective-C培训资料

    @synthesize property; @end ``` ##### 2.3 内存管理 - **引用计数**: Objective-C使用引用计数来进行内存管理。 - ** autorelease**: 对象会在适当的时候自动释放。 ```objective-c ClassName *object = [[...

    objective-c

    Objective-C 类的定义通常由两部分组成:头文件(.h)与实现文件(.m)。这种设计方式有助于提高代码的封装性和模块化。 ##### 头文件 (Test.h) ```objective-c @interface Test : NSObject { int intX; // 实例...

    Objective-C

    Objective-C是在C语言的基础上扩展了Smalltalk式的面向对象特性,使得它既有C语言的强大功能,又具备了面向对象编程的灵活性。 在Objective-C中,类是所有对象的基础。类定义了一组属性(实例变量)和方法(函数)...

    Objective-C基础知识及简介.docx

    Objective-C的控制结构与C语言相似,包括条件语句、循环语句等。例如: ```objective-c if (condition) { // 执行代码 } while (condition) { // 循环体 } for (int i = 0; i ; i++) { // 循环体 } ``` #### 九...

    objective-c的计算器

    使用`@property`关键字声明属性,`@synthesize`来生成存取方法,或者自定义getter和setter。ivar(实例变量)存储对象的状态,通常以下划线开头,如`_number1`。 5. **分类与协议**:Objective-C支持类别(Category...

    Objective-C程序设计

    你可以通过@property关键字声明属性,并使用@synthesize关键字自动生成getter和setter方法。此外,Objective-C还支持动态属性,允许在运行时添加或修改属性。 方法(Methods)是Objective-C中执行特定任务的函数。...

    学习Objective-C: 入门教程

    #### Objective-C简介与特性 Objective-C是一种面向对象的编程语言,由ANSI C语言扩展而来,主要用于苹果公司的Mac OS X和iOS操作系统上应用程序的开发。它结合了C语言的高效性与Smalltalk语言的对象导向特性,使...

    Objective-C 速查手册 1.2 (ARC版)

    ### Objective-C 速查手册(ARC版):深入解析与应用 #### 一、概览 Objective-C是一种通用、面向对象的编程语言,是开发苹果iOS和macOS平台应用程序的主要语言之一。它在C语言的基础上增加了面向对象的功能,使得...

    objective-c基础知识

    - `@synthesize` 通常与 `@property` 一起使用,用于自动生成存取方法的实现。 7. categories(分类): - Objective-C 允许通过分类给已有类添加方法,而不需要继承。 8. protocols(协议): - 协议定义了一...

    Objective-c解析XML封装

    @property (nonatomic, retain) NSMutableString *currentResult; @property (nonatomic, retain) NSMutableDictionary *map; @property (nonatomic, retain) NSMutableArray *list; -(NSMutableDictionary *)...

    objective-c 程序设计 + 代码

    1. **实例变量(Instance Variables)**:使用`@property`和`@synthesize`关键字声明和创建实例变量。现在,`@property`还提供了自动合成ivar和getter/setter。 2. **属性(Properties)**:Objective-C的属性提供...

    Objective-C Succinctly.pdf

    - **实现属性**:在类实现部分使用`@synthesize`自动生成getter和setter方法。 - **实例变量(Instance Variables)**:用于存储对象状态的私有变量。 以上是对Objective-C Succinctly.pdf中的核心知识点进行的梳理与...

    Objective-C Cheatsheet

    Objective-C是一种广泛使用的编程语言,主要用于苹果的Mac OS X和iOS操作系统的应用程序开发。Objective-C结合了C语言的简洁性和Smalltalk风格的消息传递系统。它允许开发者创建面向对象的程序,并且在苹果生态系统...

Global site tag (gtag.js) - Google Analytics