如何在typedef枚举中更改值?

时间:2016-01-11 15:13:19

标签: objective-c

我有下一个enum

typedef enum {
    SignUp,
    LogIn
} TypeAction;

并在界面中的属性之后:

@property (assign, nonatomic) TypeAction * typeAction;

在按钮操作中,我执行:

- (IBAction)SignUp:(id)sender {
    self.typeAction = SignUp;
}

所以,在另一个按钮动作中,我尝试比较:

 - (IBAction)Check:(id)sender {
        if(self.typeAction = SignUp){
          //       
        }
    }

但我得到nil in self.typeAction`

1 个答案:

答案 0 :(得分:3)

这应该是:

 - (IBAction)Check:(id)sender {
        if(self.typeAction == SignUp){
          //       
        }
    }

或者,实际上,您可能希望将if - 语句更改为if(SignUp == self.typeAction),因为编译器会捕获==问题。

您的财产声明应为:

@property (assign, nonatomic) TypeAction typeAction;

assign不是指针,您在self.typeAction语句的该行中将SignUp设置为if,然后将其视为nil因为它将self.typeAction视为指针,这是导致错误的原因。