Как преобразовать из int в строку в цели c: пример кода - PullRequest
68 голосов
/ 09 июля 2009

Я пытаюсь преобразовать int в строку, но у меня возникли проблемы. Я следил за выполнением через отладчик, и строка 'myT' получает значение 'sum', но оператор 'if' не работает правильно, если 'sum' равен 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(myT==@"10" || myT==@"11" || myT==@"12")
        action = @"numGreaterThanNine";

Ответы [ 6 ]

162 голосов
/ 11 февраля 2011

Если вам просто нужен int для строки, как вы предлагаете, я обнаружил, что самый простой способ сделать это следующим образом:

[NSString stringWithFormat:@"%d",numberYouAreTryingToConvert]
149 голосов
/ 04 декабря 2012

Вы можете использовать литералы, это более компактно.

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

(в качестве поля NSNumber используется метод stringValue )

32 голосов
/ 09 июля 2009

Закомментированная версия является более правильным способом сделать это.

Если вы используете оператор == для строк, вы сравниваете адреса строк (где они расположены в памяти), а не значения строк. Это иногда полезно (это указывает на то, что у вас точно такой же строковый объект), но в 99% случаев вы хотите сравнивать значения, которые вы делаете так:

if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])
12 голосов
/ 09 июля 2009

== не следует использовать для сравнения объектов в вашем if. Для NSString используйте isEqualToString: для их сравнения.

8 голосов
/ 02 февраля 2012
int val1 = [textBox1.text integerValue];
int val2 = [textBox2.text integerValue];

int resultValue = val1 * val2;

textBox3.text = [NSString stringWithFormat: @"%d", resultValue];
3 голосов
/ 24 июня 2016

Просто конвертируйте int в NSString использование:

  int x=10;

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