码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之oc(七)--@property和@synthesize

时间:2015-02-24 15:09:26      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:

@property和@synthesize

首先从翻译来看: @property(翻译为:性质)和@synthesize(合成),是不是很像属性(声明)和实现?

1. @property

用在@inteface中

用来自动生成setter和getter的声明

用@property int age;就可以代替下面的两行

- (void)setAge:(int)age;  // setter
- (int)age;   // getter

2.@synthesize(只做了解)

用在@implementation中

用来自动生成setter和getter的实现

用@synthesize age = _age;就可以代替

- (int)age{
    return _age;
}
- (void)setAge:(int)age{
    _age = age;
}

3. @synthesize的细节(只做了解)

  • @synthesize age = _age;

>  setter和getter实现中会访问成员变量_age

> 如果成员变量_age不存在,就会自动生成一个@private的成员变量_age

  • @synthesize age;

>setter和getter实现中会访问成员变量age

>如果成员变量age不存在,就会自动生成一个@private的成员变量age

  • 手动实现

>若手动实现了setter方法,编译器就只会自动生成getter方法

>若手动实现了getter方法,编译器就只会自动生成setter方法

>若同时手动实现了setter和getter方法,编译器就不会自动生成不存在的成员变量

4. @property新特性(哈哈,现在就用这个)

  • 自从Xcode 4.x后,@property就独揽了@synthesize的功能。也就是说,@property可以同时生成setter和getter的声明和实现

  • 默认情况下,setter和getter方法中的实现,会去访问下划线 _ 开头的成员变量

iOS开发之oc(七)--@property和@synthesize

标签:

原文地址:http://www.cnblogs.com/iOSteemo/p/4298684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!