Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios swift中的开关箱警告_Ios_Swift_Switch Statement - Fatal编程技术网

Ios swift中的开关箱警告

Ios swift中的开关箱警告,ios,swift,switch-statement,Ios,Swift,Switch Statement,我对核心数据实体的Int32属性有如下切换条件 switch location.userLocationLike?.likeStatusId { case 1 as Int32: view.lblLike.text = "LIKED" case 2 as Int32: view.lblLike.text = "OKAY" case 3 as Int32:

我对核心数据实体的Int32属性有如下切换条件

switch location.userLocationLike?.likeStatusId {
            case 1 as Int32:
                view.lblLike.text = "LIKED"
            case 2 as Int32:
                view.lblLike.text = "OKAY"
            case 3 as Int32:
                view.lblLike.text = "DISLIKE"
            default:
                view.lblLike.text = "LIKE"
            }
若我并没有将强制转换值键入Int32,那个么它将显示错误,若我将其转换为Int32,那个么它将显示警告。谁能告诉我写开关箱的最好方法是什么。

该错误具有误导性,根据警告,
as Int32
强制转换没有意义,您无法使用非可选案例、可选绑定(甚至强制展开)
userLocationLike
打开可选

if let likeStatus = location.userLocationLike {

    switch likeStatus.likeStatusId {
        case 1: view.lblLike.text = "LIKED"
        case 2: view.lblLike.text = "OKAY"
        case 3  view.lblLike.text = "DISLIKE"
        default: view.lblLike.text = "LIKE"
    }
}

你能打印这个位置吗?userLocationLike?.likeStatusIdtry this
case 1 as Int
Anbu,case 1 as Int:-->发出警告,如“从Int32转换为不相关类型Int总是失败”,然后你需要在安全状态下展开,并与intit检查是否可以连接项目你可以使用适当的模式打开可选的,例:我不认为这个错误有误导性。唯一的问题是结尾处的问号容易丢失。如果它说“Int类型的表达式不能匹配可选的Int32”,我认为任何人都不会有问题,但它仍然说同样的事情。如果我没有转换case值,那么代码就会抛出一个错误