以下是我的代码的一部分:
我有一个字符串,由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]];
因此用户以十进制值写入Source / Dest,但是它们在字符串中以十六进制形式存储,然后我有一个按钮重新格式化源和&像这样:
NSString * CommandReadyToSend = [NSString stringWithFormat:@"X:0/%@,%@\r", DestChoice, SourceChoice];
我的代码工作正常,但是,一些值在CommandReadyToSend部分产生了EXC_BAD_ACCESS ... 示例:如果我在文本字段中写入1 =>我在DestChoice中收到1(十六进制值) 如果我在文本字段中写入10 =>我在DestChoice中收到A
但如果我在文本字段中写31,我应该得到1F,但我得到一个EXC_BAD_ACCESS ... 同样的事情29(十分值)
答案 0 :(得分:0)
NSString * DestChoice = [NSString stringWithFormat:stringWithFormat:@"%@%@", Dest1String];
您表示要使用%@%@
格式化两个对象,但您只提供一个对象(Dest1String
)。
答案 1 :(得分:0)
我看到你的代码唯一的问题是
NSString * DestChoice = [NSString stringWithFormat:stringWithFormat:@"%@", Dest1String];
相反,您可以使用
NSString * DestChoice = [NSString stringWithString:@"%@", Dest1String];
除此之外,没有问题。我得到了正确的结果。