1

我正在做一个关于 iPhone 编程的视频教程,它是一个非常简单的计算器应用程序。在某一时刻,我声明了以下方法:

- (NSString*)calculate:(NSString*)operation withNumber:(NSInteger)number 
{
    return nil; 
}

目前尚未实施。然后我想用以下方法调用该方法:

self.display.text = [self calculate:[sender currentTitle] withNumber:[self.display.text intValue]];

Xcode 在这里给我一个错误:'expected expression'。这里有什么问题?方法是什么withNumber?我会理解的

- (NSString*)calculate :(NSString*)operation :(NSInteger)number;

那是一种将字符串和int作为参数并返回String的方法。我不明白withNumber这里做什么。

4

1 回答 1

3

好的,要使其正常工作,您需要删除不必要的空格:

- (NSString*)calculate:(NSString*)operation withNumber:(NSInteger)number{
    ...
}

当然也可以调用该方法。

至于'withNumber 是什么?' :这是多输入法在 Objective-C 中的样子,方法的名称不位于参数之前。该方法实际上是calculate:withNumber:在运行时系统中命名的

我强烈建议阅读一些初学者指南

您可以这样做- (NSString*)calculate:(NSString*)operation :(NSInteger)number,然后您将不得不调用[self calculate:myString :myNumber];,但绝大多数 Objective-C 用户不会这样做:该语言使您有机会澄清您的代码并指定哪些参数是什么:抓住这个机会。

于 2012-08-22T09:37:10.573 回答