0

私は立ち往生しています。サンプルではなく、私が使用する正確なコードを提供します。

したがって、次のような 2 つの文字列を作成します。

DestChoice = [NSString stringWithFormat:@"%lX", [DestField integerValue]];
SourceChoice = [NSString stringWithFormat:@"%lX", [SourceField integerValue]];

したがって、ユーザーは Source/Dest を Decimal 値で書き込みますが、それらは文字列の 16 進数としてストックされます。次に、ソースと dest を次のように再フォーマットするボタンがあります。

NSString * CommandReadyToSend  = [NSString stringWithFormat:@"X:0/%@,%@\r", DestChoice, SourceChoice];

私のコードは機能していますが、奇妙なことに、一部の値は CommandReadyToSend 部分で EXC_BAD_ACCESS を作成します...フィールド => DestChoice で A を受け取りました

しかし、テキストフィールドに 31 と書くと 1F になるはずが、EXC_BAD_ACCESS になってしまいます... 29 (10 進値) でも同じです

特定の 16 進値を文字列に再フォーマットできないようですが、わかりません...

4

1 に答える 1

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];-これはおそらく問題です。

于 2012-05-10T12:57:42.320 に答える