0

iPhoneで日付を使用して基本的な操作を実行しようとしています。"2010-02-19" のような文字列を "Friday, Feb 19" のような文字列に変換したいと考えています。私が受け取る文字列は常に 2010-02-19 のものです。現在、動作する次のコードを実行していますが、「NSDate が +dateWithNaturalLanguageString に応答しない可能性があります:」という警告が生成されます。

NSDate *date = [NSDate dateWithNaturalLanguageString:scheduled];
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateFormat:@"EEEE, MMM dd"];

return [df stringFromDate:date];

コードは機能しますが、その警告が生成されます。心配する必要がありますか、それとも iPhone でこれで問題ありませんか。使用すべき別の NSDate イニシャライザはありますか?

4

2 に答える 2

2

+dateWithNaturalLanguageStringMac でのみ利用できるようです: Macデベロッパー センターのNSDateクラス リファレンスとiPhoneデベロッパー センターのNSDateクラス リファレンス

また、ドキュメントには次のように記載されています。

予期しない結果が生じる可能性があるため、使用しないことを強くお勧めします

クラス リファレンスの概要セクションには、次の情報が記載されています。

NSDate は、日付の文字列表現を解釈および作成するためのいくつかのメソッドを提供します (たとえば、dateWithNaturalLanguageString:locale: および descriptionWithLocale:)。一般に、Mac OS X v10.4 以降では、NSDateFormatter のインスタンスを使用して、メソッド dateFromString: および stringFromDate: を使用して文字列を解析および生成する必要があります。詳細については、Mac OS X 10.4 の NSDateFormatter を参照してください。

これは Mac でのみ公式に利用可能であり、iPhone では利用できないことを考えると、iPhone プロジェクトでは使用しません。Mac でも、Apple はNSDateFormatter代わりに を使用することを推奨しているようです。

于 2010-02-18T02:38:30.163 に答える
0

NSDateFormatter:dateFromString を使用してみてください。ここに例があります。

于 2011-04-24T11:23:00.850 に答える