NSString の月の名前を、「1 月」=>「01」、「2 月」=>「02」などの 2 桁の数値に置き換えようとしています。私が使用しているアプローチは次のとおりです。
if (mois==@"january") { mois=@"01";}
if (mois==@"February") { mois=@"02";}
...しかし、それは機能していません。この交換を行うにはどうすればよいですか?
NSString の月の名前を、「1 月」=>「01」、「2 月」=>「02」などの 2 桁の数値に置き換えようとしています。私が使用しているアプローチは次のとおりです。
if (mois==@"january") { mois=@"01";}
if (mois==@"February") { mois=@"02";}
...しかし、それは機能していません。この交換を行うにはどうすればよいですか?
if ([mois isEqualToString:@"january"])
あなたが探しているものです。
あなたがしているのは、ポインターに格納された値ではなく、ポインターを比較することです。これが、Objective-C のいくつかのクラスがこれらのisEqualTo:
メソッドを持っている理由です。
これを使って
if ([mois isEqualToString:@"january"]) { mois=@"01";}
if ([mois isEqualToString:@"February"]) { mois=@"02";}
試してみてください[mois isEqualToString:@"january"]
iOS が提供する Date 関数を使用します。NSDate と NSDateFormatter を見てください
日付関数を使用すると、SDK で月名を月コードに変換できます。これは、月が別の言語であるかどうか、大文字と小文字が異なるかどうか、または「January」ではなく「Jan」が含まれているかどうかなどを心配する必要がないことも意味します.
NSString はそのためのオブジェクトであり、mois==@"january" は使用できません。メソッド isEqualToString:(NSString *)aString を使用する必要があります。
ニコラ。
NSStrings は不変ですよね? NSMutableString を使用するか、 mois=[NSString stringWithString:@"01"]; を使用する必要があると思います。
これが役に立てば幸いです、ネイサン