2

変数の検査を NSLog よりも簡単にする独自のメソッドを作成したい - NSLog のラッパーにしたいので、メソッドに渡されるオブジェクトの適切な書式指定子をどうにかして認識する必要があります。

次のことを実行できるformat_specifier_forのようなメソッドがあると便利です。

format_specifier_for(1) => %d
format_specifier_for(@1) => %@
and so on...

アップデート:

受け入れられた回答(元の質問に回答します)に加えて、問題に対する2つの可能なアプローチがあります。

  1. @Guillaume の回答から: http://vgable.com/blog/2010/08/19/the-most-useful-objective-c-code-ive-ever-written/の LOG_EXPR メソッドを使用します。
  2. ここで説明されているように、メソッドを定義するときにオーバーロード可能な属性を使用します: How to check if a variable is an object?

理想的なソリューションは、これらのオプションの両方から借りることができると思います。

4

2 に答える 2

3

いいえ、同じデータ型に対して常に複数の (理論的にはすべての) 書式指定子を使用できるため、そのような関数は存在しません。たとえば%@、 a の値を出力しNSStringたり%p、メモリ内のアドレスを取得したりするために使用できます。

于 2012-12-10T15:06:01.320 に答える
1

それを見てください: The Most Useful Objective-C Code I've Ever Written . 作成者は、Ctypeofオペレーターと Objective-C@encodeディレクティブを使用して、あなたが望むようなことを行います...

于 2012-12-10T17:05:34.680 に答える