Ответ 1
Я действительно не знаю, что было так сложно в этом вопросе, но мне удалось сделать это следующим образом:
[myStringContainingInt intValue];
Следует отметить, что вы также можете сделать:
myStringContainingInt.intValue;
Я пытаюсь извлечь строку (которая содержит целое число) из массива, а затем использовать ее как int в функции. Я пытаюсь преобразовать его в int, используя intValue.
Вот код, который я пытался.
NSArray *_returnedArguments = [serverOutput componentsSeparatedByString:@":"];
[_appDelegate loggedIn:usernameField.text:passwordField.text:(int)[[_returnedArguments objectAtIndex:2] intValue]];
Я получаю эту ошибку:
передающий аргумент 3 из 'loggedIn:' делает указатель из целого без броска
Что не так?
Я действительно не знаю, что было так сложно в этом вопросе, но мне удалось сделать это следующим образом:
[myStringContainingInt intValue];
Следует отметить, что вы также можете сделать:
myStringContainingInt.intValue;
Вы можете просто преобразовать строку, такую как [str intValue] или [str integerValue]
integerValue Возвращает значение NSInteger для текста получателей.
для получения дополнительной информации см. здесь
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]];
В принципе, третий параметр в loggedIn
не должен быть целым числом, он должен быть каким-то объектом, но мы не можем точно знать, потому что вы не указали параметры в вызове метода. Предоставьте подпись метода, чтобы мы могли убедиться. Возможно, требуется NSNumber
или что-то в этом роде.
Если вы правильно поняли, вам нужно преобразовать NSString
в int
? Попробуйте этот код:
NSString *stringWithNumberInside = [_returnedArguments objectAtIndex:2];
int number;
sscanf([stringWithNumberInside UTF8String], "%x", &flags);