这是我的代码的一部分:
我有一个由 stringWithFormat 形成的字符串,如下所示:
NSString * DestChoice = [NSString stringWithFormat:@"%@", Dest1String];
Dest1String 形成如下:
NSString * Dest1String = [NSString stringWithFormat:@"%lX", [Dest1OutField integerValue]];
Dest1OutField 是一个 NSTextField
当我在我的文本字段中输入“10”时,DestChoice 字符串的结果为“A”,因此我的代码正在运行。当我在我的文本字段中输入“11”时,DestChoice 字符串结果为“B”,这也很好。但是如果输入“31”我应该得到“1F”但我有一个“EXC_BAD_ACCESS”崩溃......
我不明白...如果有人可以照亮我的路... :)
提前比!
编辑:
所以,我总是被困住......我将我的代码编辑为“更容易理解”,我给你我使用的确切代码,而不是示例:
所以,我做了两个这样的字符串:
DestChoice = [NSString stringWithFormat:@"%lX", [DestField integerValue]];
SourceChoice = [NSString stringWithFormat:@"%lX", [SourceField integerValue]];
因此,用户以十进制值写入源/目标,但它们以十六进制形式存储在字符串中,然后我有一个按钮可以重新格式化源和目标,如下所示:
NSString * CommandReadyToSend = [NSString stringWithFormat:@"X:0/%@,%@\r", DestChoice, SourceChoice];
我的代码正在工作,但是,奇怪的是,某些值在 CommandReadyToSend 部分产生了 EXC_BAD_ACCESS ... 示例:如果我在我的文本字段中写 1 => 我在 DestChoice 中收到 1(十六进制值)如果我在我的文本中写 10 field => 我在 DestChoice 中收到 A
但是如果我在文本字段中写 31,我应该得到 1F,但我得到一个 EXC_BAD_ACCESS... 与 29 相同(十进制值)