1

これについてどうすればよいかわかりません。私はこれを独自の方法で解決しようとしましたが、これまでのところ失敗しました。GRMustache を使用してみfloatましたが、使用しようとしているテンプレートで見栄えの悪い s を表示しようとしていることに気付きました。

基本的に、テンプレートを介して HTML として出力しようとしているモデルがあります。理想的には、変数名/キーパスをテンプレートに入れるだけで、テンプレートは適切にレンダリングされた実際の値 (ほとんど) で解析されます。(float)9382.233325しかし、私が使用しているモデルはすべての計算に float を使用しており、カンマ区切りの整数文字列 ( =>など)としてレンダリングしたいと思っています"9,382"

このような状況をカバーするドキュメントは GRMustache には見当たりませんが、これは珍しい要件ではないと思います。GRMustache または他の手法でこれを行う方法を知っている人はいますか?

4

2 に答える 2

2

私は GRMustache の作者です。

OSには完全に適したツールであるNSNumberFormatterがすでにあるため、GRMustacheにfloatフォーマット機能はありません。

モデル オブジェクトを GRMustache に渡しているので、ここに私のアドバイスがあります。

モデルでカテゴリを宣言し、フォーマットされた値ごとに特定のメソッドを追加します。

@interface MYModel(GRMustache)
// name would match your original value property name
- (NSString *)formattedValue;
@end

実装ファイルでは、NSNumberFormatter を使用します。

@implementation MYModel(GRMustache)
- (NSString *)formattedValue
{
  // Check the NSNumberFormatter reference for initializing
  // the NSSNumberFormatter for your desired output.
  NSNumberFormatter *formatter = [NSSNumberFormatter ...]; 
  return [formatter stringFromNumber: [self value]];
}
@end

多くの NSNumberFormatter インスタンスを作成するとコストがかかる場合があることに注意してください。共有メソッドを返す共有メソッドを提供することをお勧めします。上記のコードは、テクニックのヒントにすぎません。

最後に、テンプレートで{{value}}タグをに置き換えます{{formattedValue}}

ハッピーGR口ひげ!

于 2012-01-20T07:26:42.427 に答える
1

GRMustache 1.12は、数値フォーマット用のより優れたAPIを備えています:https ://github.com/groue/GRMustache/blob/master/Guides/sample_code/number_formatting.md

于 2012-02-02T07:18:31.837 に答える