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

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

你可能感兴趣的:(objective-c类,objective-c)