objective-c – 在升级到Xcode 7.3 swift 2.2之后,从swift调用obj-c枚举不起作用

前端之家收集整理的这篇文章主要介绍了objective-c – 在升级到Xcode 7.3 swift 2.2之后,从swift调用obj-c枚举不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
代码在从7.1开始升级Xcode 7.3之前工作良好,而且迅速2.2.我也看过使用typedef NS_ENUM(NSUInteger,MyStatus)…的答案…但如果可能的话,我宁可不改变现有的obj-c代码.

在obj-c头文件中定义:

typedef enum {
    StatusPending,StatusTimeout,StatusSuccess,StatusFail
} MyStatus;

Swift文件中的声明:

/* some code to retrieve the status */

switch (status) {

case .StatusSuccess:
 /* do something */

/* other test cases omitted here */

default:

}

我试过使用.rawValue,.value等,但我仍然收到一个错误

在“MyStatus”类型中找不到枚举大小写“StatusSuccess”

升级之前,所有工作都正常,并尝试卸载/重新安装Xcode 7.3,Product-> Clean,Product-> Clean Build Folder ..但没有成功:-(

解决方法

您不能在@interface和@end中声明“typedef NS_ENUM(NSUInteger,EnumName){}”,解析xcode 7.2与xcode 7.3不同.所以,只要在@interface @end块之外移动你的枚举声明,它应该可以正常工作,否则它被认为是私有声明

猜你在找的C&C++相关文章