gpt4 book ai didi

objective-c - 获取类编译时的名称,如 __PRETTY_FUNCTION__ 和 __LINE__

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:23 26 4
gpt4 key购买 nike

就像

@interface MyClass : NSObject
@end

@implementation MyClass

+ (void)helloWorld
{
printf("Hello world. The method being called is %s\n", __PRETTY_FUNCTION__);
}

@end

int main(int argc, char *argv[]) {
@autoreleasepool {
[MyClass helloWorld];
}
}

结果

Hello world. The method being called is +[MyClass helloWorld]

我只想得到类名编译时间。

最佳答案

没有在编译时获取类名的标准方法。添加此类非标准行为可能并不困难,但需要向您的编译器添加自定义代码。寻找定义 FUNCTION 的位置可能是一个很好的起点。

在寻找非常具体的解决方案时(例如在本例中),通常最好预先提及您要解决的问题,而不是定义所需解决方案的条款。

之所以有这么多人评论替代解决方案,是因为一般来说,程序员是在提供解决方案,而不是提供所要求的内容。我们经常发现所要求的要么是不可能的、不切实际的,要么不太可能正是我们想要的(如果我们所做的只是提供所要求的,我们会比现在浪费更多的时间) .当其中一种情况存在时,我们通常仍然会通过稍微更改参数来寻找解决方案。因此在这种情况下,虽然许多人意识到编译时确定不可用,但许多人可能也认为运行时确定没有理由不能满足需要。当然,有一些因素可能会对此产生明显的争议,例如运行时性能(除非在慢速 CPU 上运行,否则不太可能成为一个因素,然后使用 ObjC 就会受到质疑)或内存开销(同样的警告)。

关于objective-c - 获取类编译时的名称,如 __PRETTY_FUNCTION__ 和 __LINE__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159317/

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