object-c学习:@synthesize配对使用

转载 2012年03月27日 17:22:54
Objective-C语言关键词,与@synthesize配对使用。
  功能:让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明。
  如:
  1、在头文件中:
  @property int count;
  等效于在头文件中声明2个方法:
  - (int)count;
  -(void)setCount:(int)newCount;
  2、实现文件(.m)中
  @synthesize count;
  等效于在实现文件(.m)中实现2个方法。
  - (int)count
  {
  return count;
  }
  -(void)setCount:(int)newCount
  {
  count = newCount;
  }
  以上等效的函数部分由编译器自动帮开发者填充完成,简化了编码输入工作量。

编辑本段格式

  声明property的语法为:
  @property (参数1,参数2) 类型 名字;
  如:
  @property(nonatomic,retain) UIWindow *window;
  其中参数主要分为三类:
  读写属性: (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
  禁止多线程,变量保护,提高性能

编辑本段参数类型详解

  参数中比较复杂的是retain和copy,具体分析如下:

getter分析

  1、 @property(nonatomic,retain)test* thetest;
  @property(nonatomic ,copy)test* thetest;
  等效代码:
  -(void)thetest
  {
  return thetest;
  }
  2、@property(retain)test* thetest;
  @property(copy)test* thetest;
  等效代码:
  -(void)thetest
  {
  [thetest retain];
  return [thetest autorelease];
  }

setter分析

  1、
  @property(nonatomic,retain)test* thetest;
  @property(retain)test* thetest;
  等效于:
  -(void)setThetest:(test *)newThetest {
  if (thetest!= newThetest) {
  [thetestrelease];
  thetest= [newThetest retain];
  }
  }
  2、@property(nonatomic,copy)test* thetest;
  @property(copy)test* thetest;
  等效于:
  -(void)setThetest:(test *)newThetest {
  if (thetest!= newThetest) {
  [thetestrelease];
  thetest= [newThetest copy];
  }
  }

相关文章推荐

IOS前奏之Object-c @property和@synthesize的基本使用

Object-c @property和@synthesize的基本使用

IOS开发基础Object-C(06)—@property 和@synthesize语法

今天我们来学一下@property和@synthesize语法,在我的前几篇博客中,我详细介绍了getter方法和setter方法的创建,我们再来回顾一下。Student.h文件中声明#import ...

object-c中@property @synthesize的用法

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/deta...

OC学习笔记(9)Object-C多态的使用

1、基类ASShape //.h #import @interface ASShape : NSObject -(void) draw; @end //.m #import "ASShape.h"...

OC学习笔记(8)Object-C组合使用

1、ASPoint类 //.h #import @interface ASPoint : NSObject @property(nonatomic,assign) double x; @prop...

Object-C: 学习实例3 使用集合对象

Exam_03_Impl.h // // Exam_03_Impl.h // Exam_03 // // Created by yao_yu on 13-11-19. // Copyrigh...

Object-C学习笔记五-----使用跨文件依赖关系

前面所有的全部写在main函数里面。这样即不方便查找,也不方便修改。所以我们提取相应的类拼接在一起,方便查看和修改。 首先是Tire类和Engine类 File-New File 出现如下画面 ...

Object-c学习之自定义视图

在object-c编程中,有很多需要自定义的控件,或者视图。那么我们要如何来自己定义满足自己要求的视图或者控件呢?       1.首先          ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)