【问题标题】:In Objective C, is there a way to call reference a typdef enum from another class?在 Objective C 中,有没有办法从另一个类调用引用 typedef 枚举?
【发布时间】:2010-05-12 22:46:34
【问题描述】:

据我了解,typedef 枚举是全局范围的,但如果我在 RandomViewController.h 的 @interface 之外创建了一个枚举,我无法弄清楚如何从 OtherViewController.m 访问它。有没有办法做到这一点?

所以... "RandomViewController.h"

#import <UIKit/UIKit.h>

typedef enum {
 EnumOne,
 EnumTwo
}EnumType;

@interface RandomViewController : UIViewController { }

然后... "OtherViewController.m"

-(void) checkArray{
      BOOL inArray = [randomViewController checkArray:(EnumType)EnumOne];
}

【问题讨论】:

    标签: objective-c scope global-variables enums typedef


    【解决方案1】:

    在 OtherViewController.m 中:

    #import "RandomViewController.h"
    

    而且你不应该像类型一样命名你的变量。而是将其命名为 myEnumOne,或任何您喜欢的名称 :)

    BOOL inArray = [randomViewController checkArray:(EnumType)myEnumOne];
    

    你能告诉我们 checkArray 方法的声明吗?我的理解应该是

    - (BOOL)checkArray:(EnumType)blabla;
    

    在调用该方法时,您不需要将参数类型转换为 EnumType(我假设它已经是 EnumType 类型了)。

    【讨论】:

    • 我正在导入标题,但似乎没有这样做。它给了我未声明的错误“EnumOne”。
    • 没关系——错别字是一个了不起的障碍!感谢您的帮助。
    【解决方案2】:

    只需导入标题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多