swift enum 和OC兼容
发布时间:2020-12-14 02:02:31 所属栏目:百科 来源:网络整理
导读:虽然说swift是基于OC的,但是swift和OC还是有很多去别的,今天我们来说一下枚举变量 下面是某个免费短信验证码的验证方法的返回状态 enum SMS_ResponseState{ SMS_ResponseStateFail = 0,SMS_ResponseStateSuccess=1}; 这是一个正常的OC枚举写法,但是如果你
虽然说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 }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |