1.5 用@synthesize编写Property Assessors

1、问题

自定义类需要表示它所建模的实体的属性。那你就需要知道在Objective-C中如何定义和实现这些属性。如果你不想自己编写getter和setter方法,那你可以用@synthesize。

 

2、解决方案

要用@synthesize来实现properties,你仍然需要在类的接口中声明这些properties,之后在类的实现中实现这些properties。只是,这次不需要写你自己的assessor代码了,而是用@synthesize关键字命令编译器在编译过程中为你插入这样的代码。

 

3、原理

第1个要编写的文件就是头文件

#import <Foundation/Foundation.h>

@interface Car : NSObject

@property(strong) NSString *name;

@end

 

第2个当然就是类的实现文件,此时就用到@synthesize关键字以及将那些你希望生成getters和setters方法的property包含进来,就是放在该关键字的后面。

#import "Car.h"

@implementation Car

@synthesize name;

@end

 

调用:

(1)用dot notation

car.name = @"Sports Car";

NSLog(@"car is %@", car.name);

(2)用标准的Objective-C消息

 

4、代码

Listing 1-7. Car.h 

#import <Foundation/Foundation.h> 

@interface Car : NSObject 

@property(strong) NSString *name; 

@end

=========================================

Listing 1-8. Car.m 

#import "Car.h" 

@implementation Car 

@synthesize name; 

@end

===========================================

Listing 1-9. main.m 

#import "Car.h" 

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

        @autoreleasepool { 

                Car *car = [[Car alloc] init]; 

                car.name = @"Sports Car"; 

                NSLog(@"car.name is %@", car.name); 

 

                [car setName:@"New Car Name"]; 

                NSLog(@"car.name is %@", [car name]); 

 

        } 

        return 0; 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值