ObjectiveC Parse Integer из String

Я пытаюсь извлечь строку (которая содержит целое число) из массива, а затем использовать ее как int в функции. Я пытаюсь преобразовать его в int, используя intValue.

Вот код, который я пытался.

  NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
  [_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];

Я получаю эту ошибку:

передающий аргумент 3 из 'loggedIn:' делает указатель из целого без броска

Что не так?

Ответ 1

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

[myStringContainingInt intValue];

Следует отметить, что вы также можете сделать:

myStringContainingInt.intValue;

Ответ 2

Вы можете просто преобразовать строку, такую ​​как [str intValue] или [str integerValue]

integerValue Возвращает значение NSInteger для текста получателей.

  • (NSInteger) integerValue Возвращаемое значение Значение NSInteger текста получателей, предполагая десятичное представление и пропуская пробелы в начале строки. Возвращает 0, если приемник не начинается с действительного десятичного текстового представления числа.

для получения дополнительной информации см. здесь

Ответ 3

NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];

_returnedArguments - это массив из NSStrings, который ожидает свойство UITextField text. Не нужно конвертировать.

Синтаксическая ошибка:

[_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];

Если ваш _appDelegate имеет свойство passwordField, то вы можете установить текст, используя следующий

[[_appDelegate passwordField] setText:[_returnedArguments objectAtIndex:2]];

Ответ 4

В принципе, третий параметр в loggedIn не должен быть целым числом, он должен быть каким-то объектом, но мы не можем точно знать, потому что вы не указали параметры в вызове метода. Предоставьте подпись метода, чтобы мы могли убедиться. Возможно, требуется NSNumber или что-то в этом роде.

Ответ 5

Если вы правильно поняли, вам нужно преобразовать NSString в int? Попробуйте этот код:

NSString *stringWithNumberInside = [_returnedArguments objectAtIndex:2];
int number;
sscanf([stringWithNumberInside UTF8String], "%x", &flags);