我还在学习,我只是被卡住了。我希望用户输入任何数字和结果,我的程序将执行以下等式:
x = 5*y
(y
是用户添加的数字,x
是结果)
我该怎么做?我不确定我是否要添加int
或NSString
。我应该使用哪个,我应该在头文件中输入任何内容吗?
答案 0 :(得分:3)
我不确定我是否要添加
int
或NSString
。
好吧,其中一个是数字类型,另一个是文本类型。你如何繁殖文本? (除了重复它。)
您需要数字类型。
我会警告int
,因为它只能保留整数。用户将无法输入“0.5”并获得2.5;当您将“0.5”转换为int
时,小数部分将被删除,只留下整数部分,即0.然后您将5乘以0,并将结果返回给用户将是0。
使用double
。这是一个浮点类型;因此,它可以保持小数值。
...我应该在头文件中输入任何内容吗?
是的,但你输入的内容取决于你是否想要使用Bindings(假设你真的在谈论Cocoa而不是Cocoa Touch)。
如果没有Bindings,请声明您要从中检索乘数的文本字段的出口,以及要将产品放入文本字段的另一个出口。发送输入文本字段doubleValue
消息以获取乘数,并将输出文本字段与产品一起发送setDoubleValue:
消息。
使用Bindings,再次声明两个保存double
值的实例变量,一个用于乘数,一个用于产品 - 以及暴露实例变量的属性,然后合成属性,最后绑定文本字段'value
绑定到这些属性。
答案 1 :(得分:2)
如果您正在从UI中检索NSString,那么这很简单:
NSString * answer = [NSString stringWithFormat:@"%d", [userInputString integerValue]*5];
答案 2 :(得分:0)
这可以在没有任何目标C的情况下完成。也就是说,由于Objective-C是C的超集,因此可以用纯C来解决问题。
#include <stdio.h>
int main(void)
{
int i;
fscanf(stdin, "%d", &i);
printf("%d\n", i * 5);
}
在上面,fscanf
负责将标准输入上读取的字符转换为数字并将其存储在i
中。
但是,如果你有char*
中某些其他来源的字符并需要将它们转换为int,则可以使用NSString*
创建– initWithCString:encoding:
,然后使用其{ {1}}方法,但在这个特殊问题中根本不需要。