Objective c 正在尝试使用NSLog格式设置字符串值
我是objective-c的新手。我想做一个计算器应用程序。当我运行此代码时: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
-(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我当时很忙,所以只添加一个简短的评论会更快,但我现在将它作为一个答案添加。