โดยใช้ '!' ที่นี่เลิกใช้แล้วและจะถูกลบออกในรุ่นอนาคต - Swift 4.2

คอมไพเลอร์ส่งคำเตือนต่อไปนี้เมื่อตั้งค่ารูปภาพในเซลล์โดยใช้ SDWebimage ใน Swift 4.2

คำเตือนคอมไพเลอร์ Swift :

การใช้ '!' ที่นี่เลิกใช้แล้วและจะถูกลบออกในรุ่นต่อๆ ไป

let url = NSURL(string: (str_url) as String)

cell.img!.sd_setImage(with: url as URL!, completed: block_image) //--- WARNING ON THIS LINE AT URL!

ข้อเสนอแนะใด ๆ ?


person imgroot    schedule 25.09.2018    source แหล่งที่มา


คำตอบ (2)


ใช้โค้ดนี้ : cell. img!.sd_setImage(with: url! as URL, completed: block_image)

คำแนะนำ: ใช้ URL แทน NSURL

            let url = URL(string: "" ) //use url String
            cell.img!.sd_setImage(with: url, completed: block_image)
person Hemant Solanki    schedule 25.09.2018
comment
โปรดเพิ่ม Using '!' here is deprecated and will be removed in a future release เอกสารที่เกี่ยวข้อง - person Anbu.Karthik; 25.09.2018
comment
@ Anbu.karthik ฉันพบเอกสารนี้แล้ว โปรดตรวจสอบด้วยพี่ชาย: swift.org/blog/iuo และ github.com/apple/swift/blob/master/CHANGELOG .md#swift-42 ในเอกสารนี้ ส่วน Swift 4.2 › SE-0054 - person Hemant Solanki; 25.09.2018
comment
@imgroot โปรดอนุมัติคำตอบหากคุณพบว่าถูกต้องและฉันจะอธิบายให้คุณฟัง ลองใช้เอกสารนี้ คุณจะได้แนวคิดที่ดีขึ้น : swift.org/blog/iuo - person Hemant Solanki; 25.09.2018
comment
ถ้าคุณเขียน x เป็น T! คอมไพลเลอร์จะพยายามพิมพ์ check this เป็น x เป็น T? เฉพาะในกรณีที่ล้มเหลว คอมไพลเลอร์จะพยายามพิมพ์ check เป็น (x as T?)! โดยบังคับให้ใส่ตัวเลือก - person Hemant Solanki; 25.09.2018

ลองสิ่งนี้:

if let url = URL(string: str_url) {
    cell.img!.sd_setImage(with: url, completed: block_image)
}
person Jorg B Jorge    schedule 25.09.2018