iphone - _nullable - nonnull nullable objective c




ObjectiveC String에서 정수를 파싱합니다. (4)

[str intValue] 또는 [str integerValue]와 같은 문자열을 변환 할 수 있습니다.

integerValue 수신자 텍스트의 NSInteger 값을 리턴합니다.

  • (NSInteger) integerValue 리턴 값 10 진수 표현으로 가정하고 문자열 시작 부분의 공백을 생략하는 수신자 텍스트의 NSInteger 값. 리시버가 숫자의 유효한 10 진수 텍스트 표현으로 시작하지 않으면 0을 리턴합니다.

자세한 내용은 here 참조 here

배열에서 정수를 포함하는 문자열을 추출한 다음 함수의 int로 사용하려고합니다. intValue를 사용하여 int로 변환하려고합니다.

여기에 내가 해왔 던 코드가있다.

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

이 오류가 발생합니다.

'loggedIn :::'의 인수 3을 전달하면 캐스팅하지 않고 정수에서 포인터를 만듭니다.

뭐가 문제 야?


기본적으로 loggedIn 의 세 번째 매개 변수는 정수가 아니어야하며, 어떤 종류의 객체 여야합니다. 그러나 메소드 호출에서 매개 변수의 이름을 지정하지 않았으므로 확실하게 알 수 없습니다. 확실하게 볼 수 있도록 메소드 서명을 제공하십시오. 아마도 그것은 NSNumber 또는 뭔가를 필요로합니다.


내가 너를 올바르게 이해했다면 NSStringint 로 변환해야한다. 다음 코드를 사용해보십시오.

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

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

_returnedArgumentsUITextField text 속성이 예상하는 NSStrings 의 배열입니다. 변환 할 필요가 없습니다.

구문 오류 :

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

_appDelegate에 passwordField 속성이 있으면 다음을 사용하여 텍스트를 설정할 수 있습니다

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




int