swift enum 和OC兼容

原创 2015年07月09日 16:02:25

虽然说swift是基于OC的,但是swift和OC还是有很多去别的,今天我们来说一下枚举变量

下面是某个免费短信验证码的验证方法的返回状态

enum SMS_ResponseState
{
    SMS_ResponseStateFail = 0,
    SMS_ResponseStateSuccess=1
};
这是一个正常的OC枚举写法,但是如果你在swift里面调用这个写在OC里面的枚举想进行操作的话,那么对不起,你会收到各种错误提示

比如你不能这样

if verifyState == SMS_ResponseState.Success

会报下面的错误(这个绝不是.Success调用错的愿意)

'SMS_ResponseState.Type' does not have a member named 'Success'
你也不能这样

<span style="font-size:12px;">if verifyState == 1</span>
会报下面的错误

Binary operator '==' cannot be applied to operands of type 'SMS_ResponseState' and 'Int'
但是下面的方法可以进行调用,但是我没有找到下一步进行操作的方法,有人研究出来还望不吝指教

let state = SMS_ResponseState(1)
同时你也不能这样去写

let state1 = SMS_ResponseState(0)
let state2 = SMS_ResponseState(1)
if state1 == state2 {
}

具体为什么会这样,我也不知道原因,如果哪位大神研究出来了,希望能分享一下,最终我的解决方法是只能修改枚举的写法,比如下面的写法

typedef NS_OPTIONS(NSUInteger, SMS_ResponseState){swift
    SMS_ResponseStateFail = 0,
    SMS_ResponseStateSuccess=1
};



穿梭在C/OC/Swift中的枚举

ENUM-枚举
  • qq_27484549
  • qq_27484549
  • 2015年09月28日 01:17
  • 718

OC 和 Swift 混编 OC 中调用 Swift

1、创建一个Object-C工程:SwiftInObjectC 2、创建一个Object-C的类:SwiftLan(注意选择) 当创建完成后,Xcode提示下面警告...
  • sevenquan
  • sevenquan
  • 2016年02月18日 16:38
  • 1007

Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions

前言14年Swift刚出的时候开始学习的Swift,后来由于项目需要,一直写App还是用的OC。最近打算把Swift重新捡起来,这个Objective C转Swfit系列就当成是我的复习笔记,顺便写成...
  • Hello_Hwc
  • Hello_Hwc
  • 2016年07月10日 11:21
  • 2515

Swift学习之十六:枚举(Enumeration)

Swift中的枚举与C、OC中的枚举有很大的区别,增加了原来类中ft
  • woaifen3344
  • woaifen3344
  • 2014年06月09日 20:20
  • 4013

Swift学习之十六:枚举(Enumeration)

Swift中的枚举与C、OC中的枚举有很大的区别,增加了原来类中ft
  • woaifen3344
  • woaifen3344
  • 2014年06月09日 20:20
  • 4013

Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions

前言14年Swift刚出的时候开始学习的Swift,后来由于项目需要,一直写App还是用的OC。最近打算把Swift重新捡起来,这个Objective C转Swfit系列就当成是我的复习笔记,顺便写成...
  • Hello_Hwc
  • Hello_Hwc
  • 2016年07月10日 11:21
  • 2515

如何在OC中使用Swift如何在Swift中使用OC

转自:http://m.blog.csdn.net/article/details?id=47100535 一.在OC中使用Swift 1.首先创建一个工程名字就叫做CHW...
  • zhanglizhi111
  • zhanglizhi111
  • 2016年08月22日 17:20
  • 1309

OC项目中使用Swift

OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://meng...
  • mengxiangyue
  • mengxiangyue
  • 2016年02月27日 09:23
  • 27811

Swift基础之Swift调用OC语言文件使用步骤

Swift语言中,有很多封装类并没有,如果需要使用到,就需要桥接OC语言中的类,这时候就需要使用桥接头文件,一下是使用的步骤:创建一个Swift项目Demo,然后新建一个OC语言的文件如图:创建一个B...
  • hbblzjy
  • hbblzjy
  • 2016年08月19日 17:27
  • 1025

Swift工程使用OC类

1.创建一个Swift工程命名为OCSwift 2.随便创建一个OC文件 会出现提示,选择Create Bridging Header,系统会创建一个桥接文件 3.配置工程,确保Object...
  • zww1984774346
  • zww1984774346
  • 2016年01月13日 09:45
  • 557
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:swift enum 和OC兼容
举报原因:
原因补充:

(最多只允许输入30个字)