UITextField int数据类型xcode

UITextField int数据类型xcode,xcode,uitextfield,Xcode,Uitextfield,我试图得到一个数学方程来识别输入UItextfield(s1,s2)的整数的+/-符号(或-1或+1)。因此,如果用户输入不同的符号,方程将相互减去。 由于某种原因,该符号似乎未被识别,程序仅添加了d1和d2 -(IBAction)calculateD:(id)sender{ float n1, r1, n2, r1, d, d1, d2; int s1, s2; s1= [textfieldS1.text intvalue]; //etc for all variables d1 = s1

我试图得到一个数学方程来识别输入UItextfield(s1,s2)的整数的+/-符号(或-1或+1)。因此,如果用户输入不同的符号,方程将相互减去。 由于某种原因,该符号似乎未被识别,程序仅添加了d1和d2

-(IBAction)calculateD:(id)sender{
float n1, r1, n2, r1, d, d1, d2;
int s1, s2;

s1= [textfieldS1.text intvalue]; //etc for all variables

d1 = s1 * ((n1-1)/r1);
d2 = s2 * ((n2-1)/r2);

if (s1 != s2) { d = d1 - d2;} 
else { d = d1 + d2;
}}

这段代码中有任何明显的问题吗?

我不知道您在这里想做什么。变量未初始化,并且-calculateD:方法中没有对实际UITextField的特定引用。说到这里,这里有一些提示,希望能及时得到

符号s1、s2实际上被考虑了两次。一次生成d1、d2,然后决定(s1!=s2)。因此,后者将确保您添加两个相同符号的数字,可能会否定您真正想要在此处获得的结果。例如:

  • 假设s1=+1,s1=+1,然后得到d=((n1-1)/r1)+((n2-1)/r2)
  • 假设s1=+1,s1=-1,然后得到d=((n1-1)/r1)+((n2-1)/r2);和以前一样

只需删除if,并留下一个:d=d1+d2。

在此代码中,s1和s2始终为0。您尚未将文本字段中的值转移到方程式中。感谢drekka澄清变量已初始化,以及从文本字段中提取的值。我已编辑代码以表明这一点。感谢Lukasz,我希望程序能够识别用户输入,以添加或减去2个方程式,变量已初始化为斜体,变量值从文本字段中获得。我已将此添加到问题中。我已用一个简单的示例更新了我的答案。看一看,然后告诉我们,如果这是您希望该方法工作的方式。