Objective-C NS_ENUM在Swift中无法识别

时间:2018-03-26 17:32:43

标签: objective-c swift enums

我正在swift项目中使用google VR SDK外部框架。

在我的Bridging-Header.h中,我正在导入框架标题

#import "GVRCardboardView.h"

在GVRCardboardView.h中有这样的:

typedef NS_ENUM(NSInteger, GVRUserEvent) {
  kGVRUserEventBackButton,
  kGVRUserEventTilt,
  kGVRUserEventTrigger,
};

在我的快捷代码中

@objc func cardboardView(_ cardboardView: GVRCardboardView!, didFire event: GVRUserEvent) {

        switch (event) {
        case kGVRUserEventBackButton:
            print("User pressed back button");
            break;
        case GVRUserEvent.kGVRUserEventTilt:
           print("User performed tilt action");
            break;

        case .kGVRUserEventTrigger:
            print("User performed trigger action");
            break;
        }
}

但是我遇到了编译器错误。您可以看到我尝试了三种不同的方式来访问我的交换机案例中的枚举值,并且它们都会出错。首先,

Use of unresolved identifier 'kGVRUserEventTilt'

当我在网上搜索其他类似的问题时,我看到解决方案是包含枚举的名称,就像你在我的switch语句的第二种情况中看到的那样。但这给了我这个错误:

Type 'GVRUserEvent' has no member 'kGVRUserEventTilt'

第三种情况给出了这个:

Pattern cannot match values of type 'GVRUserEvent'

任何人都知道为什么?它将GVRUserEvent识别为某种东西 - 我不会在参数行中出现错误。

感谢您的帮助!

0 个答案:

没有答案