NSString
ビルドされた with内のメンバーの範囲を取得したい+[NSString stringWithFormat:]
。Objective-C フォーマット文字列を解析する最良の方法は何ですか? のため、C 形式の文字列パーサーだけを使用することはできません%@
。また、フォーマット順序をサポートしていることも確認する必要があります: %1$d
、%2$@
など。
たとえば、 で構築された文字列では[NSString stringWithFormat:@"foo %2$@ bar %1$@", @"Heath", @"Borders"]
、理想的には次のようになりNSArray
ます@[NSMakeRange(15, 5), NSMakeRange(4, 6)]
。最初の配列オブジェクトはフォーマット文字列の最初のデータ要素に対応し、2 番目の配列オブジェクトは 2 番目のデータ要素などに対応します。
この場合、API は次のようになります。 と同じように+ (NSString *) stringWithFormatRanges:(NSArray **)outFormatRanges withFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
を返しますが、各フォーマット データ要素のwithも返します。NSString
+[NSString stringWithFormat:]
NSArray
NSRange
- 編集 -
この質問は 3 年前のものなので、現時点では C のみの実装に満足しています。