如何通过引用将枚举传递给方法

时间:2013-11-11 20:55:22

标签: ios objective-c

以下是简要代码:

 enum datatype {
    type1 = 0,
    type2 = 1
 } myDataType;
在.m文件中

 @property (nonatomic) myDataType dateType;

 -(void)foo:(myDatatype)type
 {
     type = type2;
 }

 -(void)doSomething
 {
      self.dataType = type1;
      [self foo:self.dataType]
      NSLog(@"data type: %d), self.dataType);
 }

打印输出始终为type1。我想将self.dataType更改为type2,如foo:方法所示。我该怎么做?我需要通过指针吗?感谢。

2 个答案:

答案 0 :(得分:1)

将指针传递给枚举。您的方法应如下所示:

-(void)foo:(myDatatype*)type
{
     *type = type2; 
}

方法的来电:[self foo:&self.dataType]

答案 1 :(得分:0)

您已将dataType变量设置为property

 @property (nonatomic, assign) myDataType dataType;

因此,您只需在类中的任何方法中访问该变量即可。将它作为参数或指针传递的需要是什么?

-(void)foo {
  self.dataType = type2;
}