1. ホーム
  2. objective-c

[解決済み] オブジェクトCでintからstringに変換する方法: サンプルコード

2023-07-03 19:27:03

質問

intから文字列に変換しようとしているのですが、うまくいきません。 デバッガで実行を追ってみたところ、文字列「myT」は「sum」の値を取得しますが、「sum」が10,11,12になると「if」文が正しく動作しません。 プリミティブなint型を使って数値を格納してはいけないのでしょうか? また、私が試した両方の方法(コメントアウトされたコードを参照)は、'if'文の真のパスに沿って失敗しています。 ありがとうございます。

int x = [my1 intValue]; 
    int y = [my2 intValue]; 
    int sum = x+y;
    //myT = [NSString stringWithFormat:@"%d", sum];
    myT = [[NSNumber numberWithInt:sum] stringValue];

    if(myT==@"10" || myT==@"11" || myT==@"12")
        action = @"numGreaterThanNine";

どのように解決するのですか?

コメントアウトされたものが、より正しい方法です。

もしあなたが == 演算子を使う場合、文字列の値ではなく文字列のアドレス(メモリに割り当てられた場所)を比較することになります。これはごくたまに便利ですが (まったく同じ文字列オブジェクトを持っていることを示します)、99% の場合、値を比較したいので、このようにします。

if([myT isEqualToString:@"10"] || [myT isEqualToString:@"11"] || [myT isEqualToString:@"12"])