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;
在这两种情况下,我们都只知道插入什么对象或插入到哪里。但决不能同时插入这两个参数。第一种方法是用两个参数声明方法,第二种方法是用一个参数声明两个方法。