문제의 문자열을 하드 코딩하고 substringWithRange를 시도하면 정상적으로 작동합니다. 그러나 사용자 입력을 char로 가져 와서 NSString으로 캐스트하면 NSRange 예외가 발생합니다. 내가 차콜을 던지고 있기 때문에 그런가?substringWithRange는 하드 코딩 된 문자열로 작동하지만 사용자 입력 문자열은 사용할 수 없습니다.
이 작동하지 않습니다
char word[30];
NSString *otherWord = [NSString stringWithFormat:@"%s", word];
scanf("%s", word);
NSString *firstCharacter = [otherWord substringWithRange:NSMakeRange(0, 3)];
그러나,이 일을 수행합니다 나는 또한 "otherWord는"이 수행 적절한 값을 가지고 있는지 확인하기 위해 검사
char word[30];
NSString *otherWord = @"SomeString";
scanf("%s", word);
NSString *firstCharacter = [otherWord substringWithRange:NSMakeRange(0, 3)];
.
제안 사항?
당신은 사용자의 입력을 읽는 먼저 NSString''에 캐스팅된다. 'NSString * otherWord = [NSString stringWithFormat : @ "% s", word]; scanf ("% s", word); ' –