尝试使用NSLog格式设置setStringValue

时间:2013-09-02 19:34:59

标签: objective-c

我是Objective-c的新手。我正在尝试制作一个计算器应用程序。当我运行此代码时:

-(void) addNums: (int)fnum: (int)snum {
    ans = fnum + snum;
    [result setStringValue:@"%i",ans];
}

尝试设置结果标签我得到了错误 “方法调用的参数太多,预期为1,有2”。我希望这与NSLog格式化的工作方式相同。

感谢您的帮助。 如果您需要查看更多我的代码,请告诉我。

1 个答案:

答案 0 :(得分:1)

您需要做的就是使用NSString方法+ stringWithFormat:,所以您需要做的就是

[result setStringValue:[NSString stringWithFormat:@"%d", ans]];

为了更好地了解NSString和方法+ stringWithFormat:,请参阅Apple Documentation on NSString.

我还注意到你的整个方法没有意义。请尝试以下

- (void)addNum:(int)fnum withNum:(int)snum {
    int ans = fnum + snum;
    [result setText:[NSString stringWithFormat:@"%d", ans]];
}

缺少什么

1)您有-(void) addNums: (int)fnum: (int)snum它应该是- (void)addNum:(int)fnum withNum:(int)snum。请查看Learning Objective-c A Primar并查看标题为Methods and Messages的部分。这将向您展示如何正确声明方法。

2)你没有声明ans而不是ans = fnum + snum它应该是int ans = fnum + snum;

3)最后你将result称为UILabel,因为setStringValue:不是UILabel的真正方法,它应该是setText:所以此行应为[result setText:[NSString stringWithFormat:@"%d", ans]];或者您可以执行result.text = [NSString stringWithFormat:@"%d", ans];结帐Apple documentation on UILabel