Ios swift中的开关箱警告
我对核心数据实体的Int32属性有如下切换条件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:
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值,那么代码就会抛出一个错误