从typedef枚举转换为NS_ENUM会导致符号重复

问题描述 投票:0回答:1

具有此定义:

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标记来引用类型FormType,并随后在整个代码中,将标记放置在所有使用FormType的前面。

完成此操作后,出现错误,提示我有重复的符号。

我应该如何在没有所有这些错误的情况下转换为NS_ENUM?

objective-c enums
1个回答
0
投票

您在typedef之前错过了NS_ENUM

© www.soinside.com 2019 - 2024. All rights reserved.