gpt4 book ai didi

objective-c - 是否可以将枚举范围限定为 Objective-C 中的类?

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

我是 Objective-C 的新手,正在尝试找出枚举。有没有办法将枚举范围限定为一个类,以便其他类可以使用这些值?像这样:

@interface ClassA {
typedef enum {
ACCEPTED,
REJECTED
} ClassAStatus;
}
@end

@interface ClassB {
typedef enum {
ACCEPTED,
REJECTED
} ClassBStatus;
}
@end

虽然这显然行不通。或者是否有更好的方法来完成枚举?

编辑:我想我的措辞不清楚,但我不是在问如何声明枚举。我知道将它们放在文件顶部是可行的。我想问是否有办法确定它们的范围,以便这些值对整个文件而言不是全局的。

最佳答案

您必须为您的公共(public)枚举添加前缀。只需将枚举定义放在类的标题中即可。

// ClassA.h
typedef enum {
ClassAStatusAccepted,
ClassAStatusRejected
} ClassAStatus;

@interface ClassA {
ClassAStatus status;
}
@end


// ClassB.h
typedef enum {
ClassBStatusAccepted,
ClassBStatusRejected
} ClassBStatus;

@interface ClassB {
ClassBStatus status;
}
@end

Apple 就是这样做的。

或者您可以使用新样式:

// UIView.h
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurveEaseInOut, // slow at beginning and end
UIViewAnimationCurveEaseIn, // slow at beginning
UIViewAnimationCurveEaseOut, // slow at end
UIViewAnimationCurveLinear
};

关于objective-c - 是否可以将枚举范围限定为 Objective-C 中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480574/

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