从目标c中的方法返回枚举

Woj*_*tek 1 enums objective-c ios

我的en enum定义如下:

typedef enum{
    apple,
    banana
}Fruits;
Run Code Online (Sandbox Code Playgroud)

我想创建一个返回此枚举的方法,如下所示:

-(Fruits)getFruits;
Run Code Online (Sandbox Code Playgroud)

但是当我像这样使用它时,我得到了错误:Objective-C消息的结果类型不完整'enum Fruits'.

任何人?

Rob*_*Cat 9

听起来你没有导入包含enum定义的文件.

顺便说一句,Apple提供了一个宏来帮助枚举定义并协助代码完成.例:

typedef NS_ENUM(NSInteger, Fruits) {
    Fruits_Apple,
    Fruits_Banana,
    Anything_you_want
};
Run Code Online (Sandbox Code Playgroud)


Wen*_*idd 8

你创建枚举的方式也可能有用,我没有尝试过,但我总是创建这样的枚举:

enum Fruits
{
    apple,
    banana,
    peach,
    pear
};
Run Code Online (Sandbox Code Playgroud)

创建函数时,返回值必须是enum Fruits,而不仅仅是Fruits:

-(enum Fruits) getFruits;
Run Code Online (Sandbox Code Playgroud)

还要确保#import包含枚举定义的文件.例如,如果您有一个名为ApplicationEnums.h枚举定义的文件,请将以下行添加到包含该getFruits函数的文件的顶部:

#import "ApplicationEnums.h"
Run Code Online (Sandbox Code Playgroud)