Как преобразовать из 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];