gpt4 book ai didi

iphone - 将枚举存储在 NSArray 中?

转载 作者:太空狗 更新时间:2023-10-30 03:48:12 26 4
gpt4 key购买 nike

我是 Objective-C 的新手,但对 C++ 和 C 有经验。

我想在数组中存储一些枚举常量。在 C++ 中,我会做这样的事情:

enum color {RED, BLUE, YELLOW, GREEN};
vector<color> supportedColors;
supportedColors.push_back(RED);
supportedColors.push_back(GREEN);

但是 NSArray 只会存储对象指针(id's)。那么应该如何保存呢?我可以将它们转换为整数并将它们存储在 NSNumber 对象中,但这看起来很乱。

我想知道有经验的 obj-c 程序员都做什么?

最佳答案

将它们转换为整数并将它们存储在 NSNumbers 中。 :)

native C 类型实际上是 Cocoa 集合类中的二等公民,如果您想混合使用,通常会很冗长。 C 表示枚举具有整数值,因此以这种方式将它们用作整数是安全的。

当然,根据您正在做的事情,您可以通过将该枚举包装在一个实际对象(“MyColor”)中来简化操作代码,该对象将枚举作为其属性。然后,这些对象可以根据需要在集合类中随意使用,从性能的角度来看,一些前期和运行时开销不太重要,具体取决于您在做什么。

关于iphone - 将枚举存储在 NSArray 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3172065/

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