Objective c 正在尝试使用NSLog格式设置字符串值

Objective c 正在尝试使用NSLog格式设置字符串值,objective-c,Objective C,我是objective-c的新手。我想做一个计算器应用程序。当我运行此代码时: -(void) addNums: (int)fnum: (int)snum { ans = fnum + snum; [result setStringValue:@"%i",ans]; } 为了尝试设置结果标签,我得到了错误 “方法调用的参数太多,应为1,但有2”。我希望它的工作方式与NSLog格式相同 谢谢你的帮助。 如果您需要查看更多我的代码,请告诉我。您只需使用NSString方法+stri

我是objective-c的新手。我想做一个计算器应用程序。当我运行此代码时:

-(void) addNums: (int)fnum: (int)snum {
    ans = fnum + snum;
    [result setStringValue:@"%i",ans];
}
为了尝试设置结果标签,我得到了错误 “方法调用的参数太多,应为1,但有2”。我希望它的工作方式与
NSLog
格式相同

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

您只需使用
NSString
方法
+stringWithFormat:
,因此您只需

[result setStringValue:[NSString stringWithFormat:@"%d", ans]];
要更好地理解
NSString
+stringWithFormat:
方法,请参阅

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

- (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 with num:(int)snum
。查看并查看标题为
方法和消息的部分
,这将向您展示如何正确声明方法

2) 您没有声明
ans
,因此它应该是
int-ans=fnum+snum,而不是
ans=fnum+snum


3) 最后,您将
result
称为
UILabel
,因为
setStringValue:
不是
UILabel
的实际方法,它应该是
setText:
,所以此行应该是
[result setText:[NSString stringWithFormat:@“%d”,ans]]或者您可以执行
result.text=[NSString stringWithFormat:@“%d”,ans]签出。

[结果设置字符串值:[NSString stringWithFormat:@“%i”,ans]]
看看
+stringWithFormat:
@Popeye,你可能应该把它作为一个答案而不是一个评论。@RobNapier我当时很忙,所以只添加一个简短的评论会更快,但我现在将它作为一个答案添加。