我想写我自己的方法来检查变量比我用NSLog更容易 - 我希望它是NSLog的包装,所以我需要以某种方式识别传递给我的方法的任何对象的适当的格式说明符。Objective-C是否有一个方法(或C函数)返回给定对象的对象格式说明符?
这将是不错的format_specifier_for像的方法,可以做到以下几点:
format_specifier_for(1) => %d
format_specifier_for(@1) => %@
and so on...
UPDATE:
除了公认的答案(它回答原来的问题)有是两种可能的解决方法:
- From @ Guillaume's ans wer:使用http://vgable.com/blog/2010/08/19/the-most-useful-objective-c-code-ive-ever-written/的LOG_EXPR方法。 How to check if a variable is an object?
我认为理想的解决方案可以从两个选项借:
谢谢,您已经确认我的想法! –
如果有一种方法可以获得C结构或POD类型的类型,那么可以编写一个宏或函数来评估您所选择的格式说明符。但afaik也是不可能的。 – Minthos