将枚举值分配给无比类型int

时间:2014-06-12 18:52:30

标签: objective-c enums variable-assignment

我正在使用c ++库。所以我将我的.m文件转换为.mm文件

现在发生了什么,我无法设置枚举值。

见Enum

 typedef enum{
    ImageSourceTypeCamera,
    ImageSourceTypePhotoLibrary,
    ImageSourceTypeNone
  }
ImageSourceType;

//属性

@property(nonatomic,assign) ImageSourceType ImageSourceType;

现在,当我使用此行时,它会给我错误

    self.ImageSourceType=2;  / / assigning to 'ImageProcessType' from incompaitable with 'int'

2 个答案:

答案 0 :(得分:1)

尝试:

self.ImageSourceType = ImageSourceTypePhotoLibrary

答案 1 :(得分:0)

要为枚举使用数字而不是名称,请按以下格式对定义进行格式化:

typedef enum{
    ImageSourceTypeCamera = 0,
    ImageSourceTypePhotoLibrary = 1,
    ImageSourceTypeNone = 2
  }
ImageSourceType;

self.ImageSourceType = 0; //ImageSourceTypeCamera
self.ImageSourceType = 1; //ImageSourceTypePhotoLibrary 
//etc...

if (self.ImageSourceType == 0) {
    //this is the same as (self.ImageSourceType == ImageSourceTypeCamera)