-1

NSString の月の名前を、「1 月」=>「01」、「2 月」=>「02」などの 2 桁の数値に置き換えようとしています。私が使用しているアプローチは次のとおりです。

if (mois==@"january") { mois=@"01";}   
if (mois==@"February") { mois=@"02";}

...しかし、それは機能していません。この交換を行うにはどうすればよいですか?

4

6 に答える 6

7

if ([mois isEqualToString:@"january"])あなたが探しているものです。

あなたがしているのは、ポインターに格納された値ではなく、ポインターを比較することです。これが、Objective-C のいくつかのクラスがこれらのisEqualTo:メソッドを持っている理由です。

于 2012-06-19T12:03:22.543 に答える
2

これを使って

if ([mois isEqualToString:@"january"]) { mois=@"01";}   
if ([mois isEqualToString:@"February"]) { mois=@"02";}
于 2012-06-19T12:04:17.363 に答える
1

試してみてください[mois isEqualToString:@"january"]

于 2012-06-19T12:03:46.790 に答える
0

iOS が提供する Date 関数を使用します。NSDate と NSDateFormatter を見てください

日付関数を使用すると、SDK で月名を月コードに変換できます。これは、月が別の言語であるかどうか、大文字と小文字が異なるかどうか、または「January」ではなく「Jan」が含まれているかどうかなどを心配する必要がないことも意味します.

于 2012-06-19T12:04:13.293 に答える
0

NSString はそのためのオブジェクトであり、mois==@"january" は使用できません。メソッド isEqualToString:(NSString *)aString を使用する必要があります。

ニコラ。

于 2012-06-19T12:19:28.150 に答える
-1

NSStrings は不変ですよね? NSMutableString を使用するか、 mois=[NSString stringWithString:@"01"]; を使用する必要があると思います。

これが役に立てば幸いです、ネイサン

于 2012-06-19T12:05:45.460 に答える