property和synthesize

property和synthesize 是编译器为了开发者写更少的垃圾重复代码而提高开发效率,依赖于编译器的环境,很像Java中的注解,也需要在jdk5.0以后才可以使用,@property主要是在.h文件中声明setter和Getter方法,而@synthesize是在.m文件中实现标准的setter和Getter方法。

@property

#import <Foundation/Foundation.h>


@interface Student :NSObject{

   int _age; //可以省略

   int _no;//可以省略

}


@propertyint age;//展开生成setterGetter方法

@property int no;

//-(void)setAge:(int)newAge;

//-(int)age;


//-(void)setNo:(int)newNo;

//-(int)no;


@end


@synthesize

#import "Student.h"


@implementation Student

//@synthesize age,no;

//setterGetter方法会去访问成员变量_age

@synthesize age=_age;

//-(void)setAge:(int)newAge{

//    age=newAge;

//}

//

//-(int)age{

//    return age;

//}


@synthesize no=_no;


@end



在开发中,很多时候需要在setter方法中处理一些自定义的功能,这个时候就需要我们手动实现setter方法了,而@property和@synthesize可以混搭使用,如下图所示


注意点:

1.@synthesize生成setterGetter的实现,和property一一对应,默认访问property对应的age,如果找不到同名的变量,会自动生成一个私有同名变量,.h文件中的成员变量可以省略

2.如果在m文件中手动实现了setter或者Getter方法,那么synthesize就不会生成标准的setter或者Getter方法

3.xcode4.5环境以后,可以省略.m文件中的@synthesize,编译器会默认访问_age这个成员变量,如果找不到会在内部自动生成一个私有_age


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值