我是Objective-c的新手。我正在尝试制作一个计算器应用程序。当我运行此代码时:
-(void) addNums: (int)fnum: (int)snum {
ans = fnum + snum;
[result setStringValue:@"%i",ans];
}
尝试设置结果标签我得到了错误
“方法调用的参数太多,预期为1,有2”。我希望这与NSLog
格式化的工作方式相同。
感谢您的帮助。 如果您需要查看更多我的代码,请告诉我。
答案 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。