檢查我正在使用的多個條件switch statements
代碼:這里所有情況都很好,但是。如果user_details?.rating = ""
是空的,那么我需要顯示默認情況,我的意思是所有的星星都是空的,但它會case _ where user_details?.rating ?? "" <= "1.9"
為什么?
如果我確實強制展開case _ where (user_details?.rating)! <= "1.9":
,那么應用程式在到達此位置時會崩潰
user_details?.rating = "" 那么如何將所有星星顯示為空
請指導我
switch user_details?.rating{
case "1.0":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "staremp")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case _ where user_details?.rating ?? "" <= "1.9":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star-half")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case "2.0":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case _ where user_details?.rating ?? "" <= "2.9":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star")
star3.image = UIImage(named: "star-half")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
default:
star1.image = UIImage(named: "staremp")
star2.image = UIImage(named: "staremp")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
}
uj5u.com熱心網友回復:
該應用程式正在崩潰,因為您force unwrapping
user_details?.rating
基本上說:此屬性包含的值不是nil
,如果我錯了,則崩潰應用程式。
user_details?.rating
在 switch 陳述句之前嘗試安全地展開:
使用
if let
:if let rating = user_details?.rating { }else { }
使用
guard let
:guard let rating = user_details?.rating else { return }
提供默認值:
let rating = user_details?.rating ?? ""
然后您的代碼將如下所示:
guard let rating = user_details?.rating else {
//do something if it is nil
return
}
switch rating {
case "1.0":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "staremp")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case _ where user_details?.rating ?? "" <= "1.9":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star-half")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case "2.0":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
case _ where user_details?.rating ?? "" <= "2.9":
star1.image = UIImage(named: "star")
star2.image = UIImage(named: "star")
star3.image = UIImage(named: "star-half")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
default:
star1.image = UIImage(named: "staremp")
star2.image = UIImage(named: "staremp")
star3.image = UIImage(named: "staremp")
star4.image = UIImage(named: "staremp")
star5.image = UIImage(named: "staremp")
break
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486938.html