Как преобразовать из int в строку в объекте c: пример кода
Я пытаюсь преобразовать из int в строку, но у меня возникают проблемы. Я выполнил выполнение через отладчик, а строка "myT" получает значение "sum", но оператор "if" работает неправильно, если "сумма" равна 10,11,12. Должен ли я использовать примитивный тип 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([email protected]"10" || [email protected]"11" || [email protected]"12")
action = @"numGreaterThanNine";
Ответы
Ответ 1
Замеченная версия - это более правильный способ сделать это.
Если вы используете оператор ==
для строк, вы сравниваете адреса строк (где они выделены в памяти), а не значения строк. Это очень часто полезно (это означает, что у вас есть тот же самый строковый объект), но в 99% случаев вы хотите сравнить значения, которые вы делаете так:
if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])
Ответ 2
Если вам просто нужен int для строки, как вы предлагаете, я нашел самый простой способ сделать это:
[NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]
Ответ 3
Вы можете использовать литералы, более компактные.
NSString* myString = [@(17) stringValue];
(Коробки как NSNumber и использует stringValue)
Ответ 4
==
не следует использовать для сравнения объектов в if
. Для NSString
используйте isEqualToString:
для их сравнения.
Ответ 5
int val1 = [textBox1.text integerValue];
int val2 = [textBox2.text integerValue];
int resultValue = val1 * val2;
textBox3.text = [NSString stringWithFormat: @"%d", resultValue];
Ответ 6
Просто преобразуйте int
в NSString
используйте:
int x=10;
NSString *strX=[NSString stringWithFormat:@"%d",x];