Objective c 从typedef ENUM转换为NS_ENUM会导致重复符号

Objective c 从typedef ENUM转换为NS_ENUM会导致重复符号,objective-c,enums,Objective C,Enums,根据这一定义: typedef enum { FormTypeLong, FormTypeShort } FormType 我可以通过以下方式在我的代码中使用FormType: @property (nonatomic, assign) FormType formType; - (void)getFormTypeUsed:(void (^)(FormType formType)) completion; -(FormType)getDefaultFormType; -(

根据这一定义:

typedef enum {
    FormTypeLong,
    FormTypeShort
} FormType
我可以通过以下方式在我的代码中使用
FormType

@property (nonatomic, assign) FormType formType; 

- (void)getFormTypeUsed:(void (^)(FormType formType)) completion;

-(FormType)getDefaultFormType;

-(void)setFormType: (FormType) type;

...
FormType formType = [NSNumber numberWithInt:FormTypeLog];
但是,将
typedef enum
更改为

NS_ENUM(NSInteger, FormType) {
    FormTypeLong,
    FormTypeShort
}
导致Xcode说我必须使用
enum
标记来引用type
FormType
,然后在整个代码中,将标记放在FormType的所有用法之前

执行此操作后,我会收到一个错误,说我有重复的符号


我如何才能在没有这些错误的情况下转换为NS_ENUM?

你错过了
NS_ENUM
之前的
typedef
NS_ENUM
之前的
typedef
。完全错过了这一点。谢谢@trojanfoe@trojanfoe您应该添加一个答案,但不确定是否还有其他SO问题涵盖此场景。@Cristik OK完成。