簡體   English   中英

Xcode 10 - 圖像文字不再可用

[英]Xcode 10 - image literals no longer available

Xcode 10 發行說明:“Xcode 10 中刪除了 Swift 圖像文字的代碼完成”

因此,我無法在代碼中添加圖像(並運行舊項目)並不是一個錯誤。 從現在開始,我們如何在代碼中添加圖像,只需鍵入UIImageView(image:不接受任何 png 或 jpeg。

let cellImage: UIImageView = {
    let image = UIImageView(image: ???))

    return image
}()

系統:macOS Mojave
Xcode:Xcode 10 Beta 4

Xcode 10 和 Swift 4.2 中,只有 Xcode IDE 的代碼完成功能(或自動完成)已停止使用舊方式。 這是新方法:

只需輸入image literal ,它將以默認圖標完成。

在此處輸入圖片說明

雙擊此圖標,它將打開其右側的媒體庫。

在此處輸入圖片說明

只需選擇您的圖像,它就可以像以前一樣工作!

在此處輸入圖片說明

找到打開媒體庫選項卡的快捷方式:

+ + M

在這一點上,官方文檔沒有涵蓋 Xcode 10 beta 的一些用例,所以我無法找到將媒體部分移動到舊位置的方法。

您可以使用 Xcode 中的媒體庫將圖像文字添加到您的代碼中:

顯示 XCode 媒體庫

然后從庫中選擇圖像並將其拖放到您的代碼中

從庫中選擇圖像

它將創建圖像文字

為了其他使用Swift Image Literals 的遺留代碼的人的利益,圖像文字函數本身的代碼和語法仍然有效,並且在 Swift 4.2 的 Xcode 10 中工作得非常好。

不需要回滾或重構使用這些圖像文字的現有代碼,它們仍然可以按如下方式使用:

imageView.image = #imageLiteral(resourceName: imageNameString)

只有 Xcode IDE 的代碼完成功能(或自動完成)已停止使用。


更新

先前和當前版本或 Xcode/Swift 中圖像文字表示的差異:

image = #imageLiteral(resourceName: "flower.jpg")

圖像 = #imageLiteral(資源名稱:“花.jpg”)

正如摘錄所示,圖像文字與其實際圖像的縮略圖一起表示。 但是,現在,僅在其位置使用通用圖標。 據推測,通過消除處理和顯示內嵌縮略圖的開銷,這有助於減輕 IDE 的負擔。

提示:在代碼中添加文字圖像后修復三個分辨率。
1.刪​​除另一個,只保留一個圖像
2. 用文字圖像注釋您的行代碼,然后代碼中會出現文字圖像,如: #imageLiteral(resourceName: "image@2x.png"
3. 在resourceName值中,刪除@2x和文件擴展名,如.png ,只保留圖像名稱: #imageLiteral(resourceName: "image")
4. 取消注釋! 圖像將顯示在代碼中。

在 Xcode 11 中,媒體庫現在位於 View > Show Library (SHIFT+CMD+L) 下。

如果有人使用Xcode 11,那么您可以使用以下選項找到所有媒體:

在此處輸入圖片說明

在此處輸入圖片說明

  • 使用 UIImage(imageLiteralResourceName: 'imageName') 不會返回一個可選的並且工作得很好

我正在使用 Xcode 10 beta 4,我遇到了同樣的問題! 解決使用舊方式傳遞圖像

PizzaModel(
            nome: "Marinara",
            ingredienti: "Pomodoro, Aglio",
            calorie: "729",
            img: UIImage(named: "marinara")!
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM