我对Objective-C程序中的枚举可见性有问题.我有两个头文件,其中一个定义了typedef enum
.另一个文件需要使用typedef
'd类型.
在C-#import
头文件中,我建议不要直接使用#include
个声明,而是在C-#import
头文件中使用#include
个声明.但是,我不知道如何前向声明枚举类型.
我不需要实际的枚举值,除了在相应的.m
实现文件中,在那里我可以安全地离开#import
.那么如何才能在标题中识别typedef enum
呢?
我对Objective-C程序中的枚举可见性有问题.我有两个头文件,其中一个定义了typedef enum
.另一个文件需要使用typedef
'd类型.
在C-#import
头文件中,我建议不要直接使用#include
个声明,而是在C-#import
头文件中使用#include
个声明.但是,我不知道如何前向声明枚举类型.
我不需要实际的枚举值,除了在相应的.m
实现文件中,在那里我可以安全地离开#import
.那么如何才能在标题中识别typedef enum
呢?
在objective-c中转发enum(NS_enum/NS_选项)的最新方式(Swift 3;2017年5月)是使用以下内容:
// Forward declaration for XYZCharacterType in other header say XYZCharacter.h
typedef NS_ENUM(NSUInteger, XYZCharacterType);
// Enum declaration header: "XYZEnumType.h"
#ifndef XYZCharacterType_h
#define XYZCharacterType_h
typedef NS_ENUM(NSUInteger, XYZEnumType) {
XYZCharacterTypeNotSet,
XYZCharacterTypeAgent,
XYZCharacterTypeKiller,
};
#endif /* XYZCharacterType_h */`