gpt4 book ai didi

iphone - 新的现代 Objective-C 枚举类型检查

转载 作者:可可西里 更新时间:2023-11-01 04:31:07 25 4
gpt4 key购买 nike

如果我使用新的 NS_ENUM 宏声明枚举类型,该宏是由于更强大的类型检查而引入的,我是否也可以在运行时检查此类型?

我是说,我有

typedef NS_ENUM(NSUInteger, MyNewType) {

MyNewTypeInstance1,
MyNewTypeInstance2,
MyNewTypeInstance3

};

.我想知道例如 (NSUInteger)i = 2 是一种 MyNewType

最佳答案

没有。 NS_ENUM 只是一种使用通过 C++11 引入到 Objective-C 的称为“固定基础类型”的枚举功能的方法。这确保了用于存储枚举值的类型具有固定大小和符号,但不允许您在运行时查询枚举类型。

如果您有兴趣验证值是否实际上是枚举的成员,可以使用两种相关的方法。如果值是连续的,您可以编写一个宏来检查相关值是否在有效的连续范围内。否则,您可以采用 Apple 采用的更通用(和冗长)的方法,例如UIDeviceOrientationIsValidInterfaceOrientation ,并明确检查所有有效的枚举值。

关于iphone - 新的现代 Objective-C 枚举类型检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13476977/

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