快速乘法问题 - 可可

时间:2009-10-20 03:30:51

标签: objective-c cocoa integer

我还在学习,我只是被卡住了。我希望用户输入任何数字和结果,我的程序将执行以下等式:

x = 5*y

y是用户添加的数字,x是结果)

我该怎么做?我不确定我是否要添加intNSString。我应该使用哪个,我应该在头文件中输入任何内容吗?

3 个答案:

答案 0 :(得分:3)

  

我不确定我是否要添加intNSString

好吧,其中一个是数字类型,另一个是文本类型。你如何繁殖文本? (除了重复它。)

您需要数字类型。

我会警告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}}方法,但在这个特殊问题中根本不需要。