gpt4 book ai didi

objective-c - 让 __PRETTY_FUNCTION__ 只打印选择器的第一部分?

转载 作者:行者123 更新时间:2023-12-02 07:47:36 27 4
gpt4 key购买 nike

有没有办法让 __PRETTY_FUNCTION__ 宏只解析为 ObjC 选择器的第一部分?

-(void)arg1:(int)a1 arg2:(int)a2 arg3:(int)a3 {
printf("%s\n",__PRETTY_FUNCTION__);
/* Prints 'arg1:arg2:arg3'
I want it to print 'arg1'
*/
}

最佳答案

然后您应该使用类似以下内容编辑该字符串:

NSString *method = [NSString stringWithFormat:@"%s", __PRETTY_FUNCTION__];
[method substringToIndex:[method rangeOfString:@":"].location];

然后您可以用它制作一个宏以便于使用(使用 _cmd 会得到更好的结果,如 Ole 所述)

#define __LOG_PRETTY_FUNCTION__ { \
NSString *method = NSStringFromSelector(_cmd); \
NSUInteger location = [method rangeOfString:@":"].location; \
if(location == NSNotFound) NSLog(@"%@", method); \
else NSLog(@"%@", [method substringToIndex:location]); \
}

关于objective-c - 让 __PRETTY_FUNCTION__ 只打印选择器的第一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850797/

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