【Lession 09 OC语言】@property与@synthesize

本文介绍了Objective-C中@property和@synthesize的使用方法,包括如何通过@property声明属性并自动生成get/set方法,以及@synthesize如何在.m文件中自动实现这些方法。

本节目录

 
 

@property

前面写一个age属性,又要写set/get方法,比较麻烦,@property就是简化操作的

Staff.h

#import <Foundation/Foundation.h>

@interface Staff : NSObject

@property int age;

@end

上面的代码等效于在头文件声明了age的set/和get方法

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

 

@synthesize

在头文件声明了age的set/get方法后,在点.m文件中要实现get/set方法,@synthesize就是自动来为你做这事的。

Staff.m

#import "Staff.h"

@implementation Staff
@synthesize age = _age;

@end

@synthesize age相当于

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

 

main函数运行

#import <Foundation/Foundation.h>
#import "Staff.h"

int main(int argc, const char * argv[])
{

    @autoreleasepool {
        Staff *staff = [[Staff alloc] init];
        [staff setAge:132];
        NSLog(@"age: %i",staff.age);
        [staff release];
        
    }
    
    return 0;
}

 

注:-(void)setAge:(int)newAge方法中的newAge可以随便写,只要方法名正确就可以

 

但在xcode4.5以后 @synthesize已经很少用了,xcode4.5后,在.m文件中会自动实现set/get方法,并且会生成一个带下划线的age成员变量(_age)

1 #import "Staff.h"
2 
3 @implementation Staff
4 
5 -(void)setAge:(int)age{
6     _age = age;
7 }
8 @end

 

第6行的下划线是xcode自动生成的

转载于:https://www.cnblogs.com/vincent-guo/p/3605282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值