4

Cocoa をしばらく使用している場合は、おそらく および に精通しているでしょNSDateFormatterNSNumberFormatter。これらは、さまざまな言語やロケールをサポートしながら、日付や数値から書式設定された表示文字列を作成したり、日付や数値の文字列を数値に変換したりするのに便利です。

数週間前NSDateComponentsFormatter、「4 時間 37 分 17 秒」のようなフォーマットされた時間間隔を作成できる に出くわしました。かなりクール。

NSDateIntervalFormatter2 つの日付を比較して文字列を作成する related もあります。

次に、いくつかの非常にあいまいな NSFormatter サブクラスがあります。

NSMassFormatter
NSByteCountFormatter
NSLengthFormatter
NSEnergyFormatter
NSPersonNameComponentsFormatter

編集:

コメントから、私はNSPersonNameComponentsFormatter.

Xcode ヘルプ システムで「NS*Formatter」を検索すると、これらのほとんどが表示されますが、すべてではありません。(検索を機能させるには、ヘルプ テキストを正しくインデックス化する必要があるようで、面倒です。)

それは私が見つけることができた合計をもたらします

NSDateIntervalFormatter    -Difference between 2 dates
NSDateComponentsFormatter  -NSDateComponents to/from string
NSDateFormatter            -Formats NSDates as strings
NSNumberFormatter          -Formats numbers as strings
NSMassFormatter            -Formats mass quantity as strings 
NSByteCountFormatter       -Formats byte counts in K, MB, GB, etc.
NSLengthFormatter          -Formats length values
NSEnergyFormatter          -Displays energy qualities in Joules or Calories
NSPersonNameComponentsFormatter - displays localized formatted names

厄介なことに、これらのフォーマッターの多くはロケール プロパティを持っていないように見えるため、システムのデフォルト ロケール以外の言語/ロケールで書式設定された文字列を作成するためにそれらを使用するのはあまり簡単ではありません。何か不足している場合は、教えてください。

私が行方不明になっている他のフォーマッターを知っている人はいますか? これらはかなりあいまいですが、必要になれば時間を大幅に節約できます。

編集#2:

質問パート 2: システムの既定のロケール以外のロケールにロケール プロパティがないフォーマッタから出力を取得する方法はありますか? すべてが locale プロパティを持っていて尊重しているわけではないのはばかげているようです。現在のロケール以外の言語/ロケールの出力を生成する必要があることはよくあります。

4

2 に答える 2

5

検索する必要はありません。NSFormatterドキュメントには、そのすべてのサブクラスがリストされています。ページの上部の「継承元」ブロックを見てください。

ここに画像の説明を入力

この情報は、Xcode 7.3 doc リーダーでは利用できないことに注意してください。これは、オンライン ドキュメントでのみ利用できます (または優れたDash リーダーを使用して)。

于 2016-04-10T14:21:00.383 に答える