我想编写自己的方法来比使用 NSLog 更容易地检查变量 - 我希望它成为 NSLog 的包装器,因此我需要以某种方式识别传递给我的方法的任何对象的正确格式说明符。
最好有一个像format_specifier_for这样的方法可以执行以下操作:
format_specifier_for(1) => %d
format_specifier_for(@1) => %@
and so on...
更新:
除了接受的答案(它确实回答了原始问题)之外,还有两种可能的方法来解决这个问题:
- 来自@Guillaume 的回答:使用来自http://vgable.com/blog/2010/08/19/the-most-useful-objective-c-code-ive-ever-written/的 LOG_EXPR 方法。
- 在定义方法时使用可重载属性,如下所述:如何检查变量是否为对象?
我认为理想的解决方案可以借鉴这两种选择。