该代码在从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块之外移动你的枚举声明,它应该可以正常工作,否则它被认为是私有声明