• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Objective-C具有多个参数的方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
我们继续就《Objective-C 分离接口和实现文件》一文中的 Fraction 类说事。如果有一个方法能够只用一条消息即可设置 numerator 同时又可设置 denominator,那该有多好啊!没问题,通过列出每个连续的方法并用冒号将其连起来,就可以定义一个接受多个参数方法。用冒号连接的参数将成为这个方法名的一部分。例如,方法名 addEntryWithName: andEmail: 表示接收两个参数的方法,这两个参数可能是姓名和电子邮件地址。方法 addEntryWithName: andEmail: andPhone: 是接收以下 3 个参数的方法,一个姓名,一个电子邮件地址和一个电话号码。
 
同时设置 numerator 和 denominator 的方法可以命名为 setNumerator: andDenominator: 你可以采取以下形式:
 
[myFraction setNumerator: 1 andDenominator: 3];
 
这种方法还不错。实际上,这是命名方法的首选方式。但是必须为方法指定更易阅读的名称。例如:一种更通用的做法,setTo: over: 它可读性会比前面来得更强。
 
[myFraction setTo: 1 over: 3];
 
接下来,让我们把这个新方法应用到 Fraction.h 中去:
 
01 #import <Foundation/Foundation.h>
02 
03 // Define the Fraction class
04 
05 @interface FractionNSObject
06 {
07     int numerator;
08     int denominator;
09 }
10 
11 @property int numerator, denominator;
12 
13 -(void)        print;
14 -(void)        setTo: (int) n over: (int) d;
15 -(double)    convertToNum;
16 
17 @end
 
然后,在实现文件中添加新方法定义:
 
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 -(void) setTo: (int) n over: (int) d
21 {
22     numerator = n;
23     denominator = d;
24 }
25 
26 @end
 
最后,在 main.m 中应用它:
 
01 #import "Fraction.h"
02 
03 int main (int argc, const char * argv[])
04 {
05     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
06     Fraction *aFraction = [[Fraction alloc] init];
07     
08     [aFraction setTo: 100 over: 200];
09     [aFraction print];
10     
11     [aFraction setTo: 1 over: 3];
12     [aFraction print];
13     [aFraction release];
14     
15     [pool drain];
16     return 0;
17 }
 
范例 7-2 完成,最终输出结果如下:
 

100/200

1/3


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOS:学习笔记,Swift与Objective-C混用简明教程(转载)发布时间:2022-07-12
下一篇:
从C的声明符到Objective-C的Blocks语法发布时间:2022-07-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap