Objective-C中的方法声明

Objective-C中的方法声明,objective-c,Objective C,为什么我们要声明这样的方法 - (void) createBudget: (double) aBudget withExchangeRate: (float) anExchangeRate; 为什么不喜欢: -(void) createBudget: (double) aBudget; -(void) withExchangeRate: (float) anExchangeRate;" 在Objective-C中 以第一种方式声明方法有什么用?好的,您误解了方法及其参数 - (void)

为什么我们要声明这样的方法

- (void) createBudget: (double) aBudget withExchangeRate: (float) anExchangeRate; 
为什么不喜欢:

-(void) createBudget: (double) aBudget; -(void) withExchangeRate: (float) anExchangeRate;" 
在Objective-C中


以第一种方式声明方法有什么用?

好的,您误解了方法及其参数

- (void) createBudget: (double) aBudget withExchangeRate: (float) anExchangeRate;
声明带有两个参数的
createBudget
方法(它可以接收的消息)
aBudget
anExchangeRate
。用途将是:

  [createBudget 1000.00 withExchageRate: 1.5]

第二种方法是声明两种方法,虽然它可能会起作用,但当想法是用声明的汇率创建预算时,有两种方法有点奇怪。

第一个函数实际上是一个带有两个参数的函数

- (void) createBudget: (double) aBudget withExchangeRate: (float) anExchangeRate; 
您还可以将上述函数声明为

- (void) createBudget: (double) aBudget:(float) anExchangeRate;
两者都可以很好地工作,但是从理解的角度来看,从第一次声明开始,一个人可以猜出这个函数是关于什么的。他/她会直接说此函数接受一个参数-带汇率的预算并对其执行操作

在第二个声明中,如果我们将变量
aBudget
anExchangeRate
更改为其他变量,那么没有人可以猜测它将做什么

现在开始第二个函数:

-(void)createBudget:(双)邻接-(无效)汇率:(浮动)汇率

这里您创建了两个函数,即
createBudget
with exchangerate
而不是一个。
因此,您将单独调用这些函数意味着当您将调用
createBudget
时,您只能访问
aBudget
而不能访问
anExchangeRate
,因为它是在单独的函数中定义的。

我假设您已经知道,第二种方法将创建两个带有一个参数的方法,而第一种方法创建一个方法这是两个论点。因此,您的问题归结为为什么要将多个参数传递给一个方法。我们这样做是因为为了使方法正确运行,需要两个参数

实例:考虑<代码> NSMutableArray <代码>对象>代码>

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index
如果我们在mutableArray上调用这个方法,我们可以在索引处插入一个对象。看看这种创建方法一开始是多么奇怪,但读起来却非常好

如果我们把它分成两种方法

- (void)insertObject:(id)anObject;
- (void)atIndex:(NSUInteger)index;

在这两种情况下,我们都只知道插入什么对象或插入到哪里。但决不能同时插入这两个参数。

第一种方法是用两个参数声明方法,第二种方法是用一个参数声明两个方法。