gpt4 book ai didi

objective-c - 使用 NSLog 使用枚举数据类型的 token

转载 作者:太空狗 更新时间:2023-10-30 03:41:58 28 4
gpt4 key购买 nike

我正在尝试使用 NSLog 显示存储在枚举的特定值中的值。在下面的示例中,我尝试获取如下输出:5 表示 month of May

知道什么是用于 NSLog 的 enum 的正确标记吗?我试过使用 %i 和 %@,但都不起作用。

谢谢!

enum month {jan = 1, feb, march, apr, may, jun, jul, aug, sep, oct, nov, dec};
enum month amonth;
int x = 5;
amonth = x;
NSLog(@"%i represents month of %@", x,amonth);

最佳答案

很遗憾,您所要求的是不可能的。枚举名称在编译后不会保留(除了作为编译器可用的调试信息)。因此,除非您想要 a) 在您的应用中发送调试信息,并且 b) 在您的应用中有效地编写一个使用嵌入式调试信息的调试器,否则它是行不通的。

此问题的典型解决方案是使用 switch 语句提供一个返回适当名称的函数。

NSString *monthName(enum month m) {
switch (m) {
case jan:
return @"jan";
case feb:
return @"feb";
...
}
return @"unknown";
}

这种方法的一个好处是您可以本地化名称。

关于objective-c - 使用 NSLog 使用枚举数据类型的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12012478/

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