加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – 在升级到Xcode 7.3 swift 2.2之后,从swift调用ob

发布时间:2020-12-16 03:36:09 所属栏目:百科 来源:网络整理
导读:该代码在从7.1开始升级到 Xcode 7.3之前工作良好,而且迅速2.2.我也看过使用typedef NS_ENUM(NSUInteger,MyStatus)…的答案…但如果可能的话,我宁可不改变现有的obj-c代码. 在obj-c头文件中定义: typedef enum { StatusPending,StatusTimeout,StatusSuccess,
该代码在从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块之外移动你的枚举声明,它应该可以正常工作,否则它被认为是私有声明

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读