gpt4 book ai didi

ios - 定义包含行、类和一般格式的自定义 NSAssert

转载 作者:行者123 更新时间:2023-11-28 23:57:49 27 4
gpt4 key购买 nike

正如标题所示,我如何定义一个自定义的 NSAssert ,其中包括行、类和格式,如下面的 NSLog 所示:

#define NSLog(__FORMAT__, ...) NSLog((@"%@: "__FORMAT__), NSStringFromClass([self class]), ##__VA_ARGS__)

问题在于 NSAssert 在考虑其余参数之前首先具有 BOOL 值。如果不取出参数并将它们分开,我似乎无法找到解决方案。

有没有更好的方法来解决这个问题?

长话短说,我正在寻找这样的东西:

#define DebugAssert(__VA_ARGS__[0], @"%@: %@", NSStringFromClass([self class]), __VA_ARGS__[1])

最佳答案

NSAssert 宏定义如下:

#define NSAssert(condition, desc, ...)  /* the implementation */

因此,条件已经是一个独立于格式字符串和可变参数列表的参数。执行与您为 NSLog 所做的类似的操作应该没有问题:

#define MyAssert(condition, desc, ...) \
NSAssert(condition, (@"%@: " desc), NSStringFromClass([self class]), ##__VA_ARGS__)

关于ios - 定义包含行、类和一般格式的自定义 NSAssert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50612535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com