我被困住了。 我给你的是我使用的确切代码,而不是样本:
所以,我做了两个这样的字符串:
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 :(得分:2)
似乎对我有用,原因必须在别处。
NSString *destChoice = [NSString stringWithFormat:@"%lX", 1];
NSString *sourceChoice = [NSString stringWithFormat:@"%lX", 31];
NSString *commandReadyToSend = [NSString stringWithFormat:@"X:0/%@,%@\r", destChoice, sourceChoice];
NSLog(@"%@", commandReadyToSend);
2012-05-10 13:56:29.092 test[9383:707] X:0/1,1F
-
顺便说一句;如果DestField
是UITextField
,那么您应该使用[DestField.text integerValue];
- 这可能是您的问题。