如何从int转换为string在目标c:示例代码

我想从一个int转换为一个string,但我有麻烦。 我通过debugging器跟踪执行,string“myT”获取“sum”的值,但如果“sum”是10,11,12,则“if”语句无法正常工作。 我不应该使用原始的inttypes来存储数字吗? 另外,我尝试的两种方法(请参阅注释掉的代码)都无法遵循“if”语句的真正path。 谢谢!

int x = [my1 intValue]; int y = [my2 intValue]; int sum = x+y; //myT = [NSString stringWithFormat:@"%d", sum]; myT = [[NSNumber numberWithInt:sum] stringValue]; if(myT==@"10" || myT==@"11" || myT==@"12") action = @"numGreaterThanNine"; 

注释掉的版本是更正确的方法来做到这一点。

如果您在string上使用==运算符,则您将比较string的地址(它们在内存中分配的位置)而不是string的值。 这是非常偶然的(它表明你有完全相同的string对象),但99%的时候你想比较的值,你这样做:

 if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"]) 

如果你只是需要一个string的int,如你所build议的,我发现最简单的方法是做如下:

 [NSString stringWithFormat:@"%d",numberYouAreTryingToConvert] 

你可以使用文字,它更紧凑。

 NSString* myString = [@(17) stringValue]; 

(框作为一个NSNumber,并使用它的stringValue方法)

==不应该用来比较if对象。 对于NSString使用isEqualToString:来比较它们。

 int val1 = [textBox1.text integerValue]; int val2 = [textBox2.text integerValue]; int resultValue = val1 * val2; textBox3.text = [NSString stringWithFormat: @"%d", resultValue]; 

简单地将int转换为NSString使用:

  int x=10; NSString *strX=[NSString stringWithFormat:@"%d",x];