Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift enum 和OC兼容大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

然说swift是基于OC的,但是swift和OC还是有很多去别的,今天我们来说一下枚举变量 下面是某个免费短信验证码的验证方法的返回状态 enum SMS_ResponseState { SMS_ResponseStateFail = 0, SMS_ResponseStatesuccess=1 };这是一个正常的OC枚举写法,但是如果你在swift里面调用这个写在OC里面的枚举想
@H_674_6@
@H_674_6@

然说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
};

大佬总结

以上是大佬教程为你收集整理的swift enum 和OC兼容全部内容,希望文章能够帮你解决swift enum 和OC兼容所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
猜你在找的Swift相关文章