尝试将 NSString 转换为大写时,出现线程断点错误。我希望将问题的输入设置为大写字母,以便用户可以输入 no、No、nO,并且仍然可以在内部将其转换为 NO。我知道我可以让它要求 0 或 1,但这样做对用户来说更加友好。我打开了调试模式,这将提供一些额外的数据以使其更简单。我在 [string uppercaseString] 行获得了线程断点。对于输出,我第一次收到预期的调试器消息,但程序在显示第二个之前停止。
#define DEBUG 1
NSLog(@"Do you have an account already? YES or NO.");
char yesOrNo [20];
fgets (yesOrNo, sizeof yesOrNo, stdin);
int c;
while ((c = getchar()) != '\n' && c != EOF);
if (yesOrNo [strlen(yesOrNo) - 1] == '\n') { //In case the input string has # characters plus \n
yesOrNo[strlen(yesOrNo) - 1] = '\0';} //Plus '\0', the '\n' isn't added and the if condition is false
NSString *string = [NSString stringWithUTF8String:yesOrNo];
#ifdef DEBUG
NSLog(@"DEBBUGER MESSAGE: string == %@", string);
#endif
NSString *stringUppercase = [string uppercaseString];
#ifdef DEBUG
NSLog(@"DEBBUGER MESSAGE: stringUppercase == %@", stringUppercase);
#endif