Objective c 如何在objective c中从int转换为字符串:示例代码

Objective c 如何在objective c中从int转换为字符串:示例代码,objective-c,nsstring,int,Objective C,Nsstring,Int,我正在尝试将int转换为字符串,但遇到了问题。我通过调试器跟踪执行,字符串“myT”获取“sum”的值,但如果“sum”为10,11,12,则“if”语句无法正常工作。我是否应该使用基本的int类型来存储数字?此外,我尝试的两种方法(请参阅注释掉的代码)都未能遵循“if”语句的真实路径。谢谢 int x = [my1 intValue]; int y = [my2 intValue]; int sum = x+y; //myT = [NSString stringWi

我正在尝试将int转换为字符串,但遇到了问题。我通过调试器跟踪执行,字符串“myT”获取“sum”的值,但如果“sum”为10,11,12,则“if”语句无法正常工作。我是否应该使用基本的int类型来存储数字?此外,我尝试的两种方法(请参阅注释掉的代码)都未能遵循“if”语句的真实路径。谢谢

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";

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

注释掉的版本是更正确的方法

如果对字符串使用
=
运算符,则比较的是字符串的地址(它们在内存中的分配位置),而不是字符串的值。这是非常偶尔有用的(它表明您拥有完全相同的字符串对象),但99%的时间您希望比较值,您喜欢这样做:

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

如果您只需要按照您的建议将int转换为字符串,我发现最简单的方法是执行以下操作:

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

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

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

(框为a并使用其方法)

只需将
int
转换为
NSString
使用:


点语法可能更快捷

@(intValueDemo).stringValue 
比如说

int intValueDemo  = 1;
//or
NSInteger intValueDemo = 1;

//So you can use dot grammar 
NSLog(@"%@",@(intValueDemo).stringValue);

在第二次比较中,有一个轻微的输入错误,一个遗漏:是否有将整数放入字符串的原因?如果(sum>=10&&sum如果下面的答案让你感到困惑,请查看这个相关问题:@RavindranathAkila-
stringWithFormat
更灵活/强大,应该在一般情况下使用。如果你想要的是简单的转换,这只是一个快捷方式。我更喜欢这个而不是stringWithFormat,简短而简洁。
@(intValueDemo).stringValue 
int intValueDemo  = 1;
//or
NSInteger intValueDemo = 1;

//So you can use dot grammar 
NSLog(@"%@",@(intValueDemo).stringValue);