Objective-C 合成存取器方法

今天 Mike 要聊的是 Objective-C 2.0 下一个很方便的功能:自动生成设置函数方法和获取函数方法 (统称为存取器方法)。

第一步是在接口部分中实用 @property 指令标识属性。这些属性通常是实例变量。在前文 《Objective-C 分离接口和实现文件》 中的 Fraction 类,两个实例变量 numerator 和 denominator 都属于此类属性。下面是新的接口部分,其中添加了新的 @property 指令。

01 @interface FractionNSObject
02 {
03     int numerator;
04     int denominator;
05 }
06 
07 @property int numerator, denominator;
08 
09 -(void)        print;
10 -(double)    convertToNum;
11 
12 @end

大家可以注意到和之前代码的区别。我们没有包括下列设置函数方法和获取函数方法的定义:numerator,denominator,setNumerator: 和 setDenominator:。我们要让 Objective-C 2.0 编译器为我们自动生成或合成这些方法。如何完成呢?只需在实现部分中使用 @synthesize 指令即可,如下所示:

01 #import "Fraction.h"
02 
03 @implementation Fraction
04 
05 @synthesize numerator, denominator;
06 
07 -(void) print
08 {
09     NSLog (@"%i/%i", numerator, denominator);
10 }
11 
12 -(double) convertToNum
13 {
14     if (denominator != 0)
15         return (double) numerator / denominator;
16     else
17         return 1.0;
18 }
19 
20 @end

这样我们就可以很方便地让编译器去处理这个方法,它生成的存取器方法非常高效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值