【发布时间】:2009-09-03 20:28:50
【问题描述】:
我想使用一些 NSAssert 的东西和其他东西来更好地在我的应用程序中进行调试。 NSAssert 想要一个在断言失败时打印的字符串。很好,但除非你在那个字符串中输入一大堆信息,否则毫无用处,如果到处都是这样,可能会变得一团糟。
所以我想创建一个宏来执行 NSAssert 调用,其中包含一个包含类名、方法名和其他内容等有用信息的字符串。但更重要的是,我还想提供自定义评论。想象一下这样的宏:
USEFUL_ASSERT(foo != nil, @"那不好,真的")
由于很多原因,我不能在这里使用函数或方法调用,因为上下文会丢失并且我无法找出哪个类导致了该问题,哪个方法导致了该问题。这只能在该方法本身内部完成,因此我必须为这些信息传递大量参数,例如 [self class] 和 _cmd,但我不希望所有这些东西散落在各处。插入的代码越短,维护起来就越好。
有什么想法吗?
【问题讨论】:
-
你是 RTFM 吗? (通常不是我的风格,但它是你的用户名,毕竟)
-
男人。 TFM 太大了,我一直在阅读。但我还需要六年才能完成所有事情。所以我尝试通过 SO 加速我的学习过程。
标签: iphone objective-c cocoa macros assert