在从 Xcode 7.1 和 swift 2.2 升级到 Xcode 7.3 之前,代码运行良好。我还看到了使用 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、产品->清理、产品->清理构建文件夹..但没有成功:-(
你不能在@interface和@end中声明“typedef NS_ENUM(NSUInteger, EnumName){}”,xcode 7.2的解析与xcode 7.3不同。因此,只需将枚举声明移到 @interface @end 块之外,它应该可以正常工作,否则它被视为私有声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)