ここに私のコードの一部があります:
次のような 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」でクラッシュします...
わかりません...誰かが私の道を照らすことができれば... :)
よろしくお願いします!
編集:
だから、私はいつも立ち往生しています...私は自分のコードを「より理解しやすい」ように編集し、サンプルではなく、私が使用する正確なコードを提供します:
したがって、次のような 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 進値) でも同じです