[英]How to check if imageView is not nil in swift?
在 swift 中解包可選值時出現致命錯誤。
我有一個帶有背景圖像的配置文件 ViewController 和一個頭像圖像女巫是相同的。
當用戶沒有圖像集時,我遇到了這個致命錯誤,相反我想添加一個“默認圖像形狀”。
我如何檢查圖像是否為零?
這是我的代碼:
var currentUser = PFUser.currentUser()
let User = currentUser as PFUser
let userImage:PFFile = User["profileImage"] as PFFile {
userImage.getDataInBackgroundWithBlock{(imageData:NSData!, error:NSError!)-> Void in
if !(error != nil) {
var image:UIImage! = UIImage(data: imageData)
if image != 0 {
self.backgroundImageUser.image = image
self.avatarUserView.image = image
}
else if image == 0 {
self.backgroundImageUser.image = UIImage(named: "Shape")
self.avatarUserView.image = UIImage(named: "Shape")
}
}}}
嘗試這個:
userImage.getDataInBackgroundWithBlock{(imageData:NSData?, error:NSError?)-> Void in
if let image = UIImage(data: imageData) {
self.backgroundImageUser.image = image
self.avatarUserView.image = image
}
else {
self.backgroundImageUser.image = UIImage(named: "Shape")
self.avatarUserView.image = UIImage(named: "Shape")
}
}
為了讓這個工作,你必須了解可選鏈。 正如蘋果文檔所說:
可選鏈是查詢和調用當前可能為 nil 的可選的屬性、方法和下標的過程。 如果可選項包含值,則屬性、方法或下標調用成功; 如果可選項為 nil,則屬性、方法或下標調用返回 nil。 可以將多個查詢鏈接在一起,如果鏈中的任何鏈接為零,則整個鏈都會優雅地失敗。
因此,如果您希望對象獲得 nil 值,則必須將其聲明為 Optional。 要將對象聲明為 Optional 您必須在值后放置一個問號。 在您的示例中,它將如下所示:
var image:UIImage? ;
image = UIImage(data: imageData) ;
並且通過將此 UIImage 聲明為 Optional,它將被初始化為 nil。
let image : UIImage? = img
if image != nil{
}else{
}
迅捷 5
var imageBottom = UIImage.init(named: "contactUs")
if imageBottom != nil {
imageBottom = imageBottom?.withRenderingMode(.alwaysTemplate)
bottomImageview.image = imageBottom
}
事實上,問題出現了,正如您在編輯后的帖子中所看到的,我有一個 userImage 聲明不是可選的。
所以現在一切正常:
var currentUser = PFUser.currentUser()
let User = currentUser as PFUser
if let userImage:PFFile = User["profileImage"] as? PFFile {
userImage.getDataInBackgroundWithBlock{(imageData:NSData!, error:NSError!)-> Void in
if !(error != nil) {
var image :UIImage! = UIImage(data: imageData)
self.backgroundImageUser.image = image
self.avatarUserView.image = image
}
}}
else {
self.backgroundImageUser.image = UIImage(named: "Shape")
self.avatarUserView.image = UIImage(named: "Shape")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.