sourcecode

목표 C 문자열에서 정수 구문 분석

codebag 2023. 6. 2. 20:28
반응형

목표 C 문자열에서 정수 구문 분석

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

여기 제가 시도해 본 코드가 있습니다.

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

다음 오류가 발생했습니다.

'1987'의 3번 주장을 통과함In:::'은 캐스트가 없는 정수에서 포인터를 만듭니다.

뭐가 잘못됐나요?

저는 이 질문에 대해 무엇이 그렇게 어려웠는지 정말 모르겠습니다만, 저는 이렇게 할 수 있었습니다.

[myStringContainingInt intValue];

다음 작업도 수행할 수 있습니다.

myStringContainingInt.intValue;

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

integerValue 수신기 텍스트의 NSInteger 값을 반환합니다.

  • (NSInteger) 정수 값 반환 값 수신자 텍스트의 NSInteger 값으로, 십진수 표현을 가정하고 문자열 시작 부분에서 공백을 건너뜁니다.수신기가 숫자의 유효한 십진수 텍스트 표현으로 시작하지 않으면 0을 반환합니다.

자세한 내용은 여기를 참조하십시오.

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뭐 그런 거.

국제 사용자는 다음과 같은 소수 구분 기호를 사용할 수 있습니다..값이 혼동되거나 사용 시 0이 될 수 있는 경우intValue끈으로

예를 들어, 영국에서는1.23작성됨1,23그래서 그 숫자는1.777사용자가 다음과 같이 입력합니다.1,777그, 즉.intValue,될 것이다1777것은 아니다.1(계속).


입력 텍스트를 0일 수 있는 로케일 인수를 기반으로 NSNumber로 변환하는 매크로를 만들었습니다(0인 경우 장치 현재 로케일을 사용합니다).

#define stringToNumber(__string, __nullable_locale) (\
(^NSNumber *(void){\
NSLocale *__locale = __nullable_locale;\
if (!__locale) {\
__locale = [NSLocale currentLocale];\
}\
NSString *__string_copy = [__string stringByReplacingOccurrencesOfString:__locale.groupingSeparator withString:@""];\
__string_copy = [__string_copy stringByReplacingOccurrencesOfString:__locale.decimalSeparator withString:@"."];\
return @([__string_copy doubleValue]);\
})()\
)

만약 내가 당신을 올바르게 이해했다면, 당신은 당신의 것을 변환해야 합니다.NSString로.int다음과 같은 코드 평화를 시도해 보십시오.

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

언급URL : https://stackoverflow.com/questions/3559088/objectivec-parse-integer-from-string

반응형