it-swarm.com.de

Xcode 10 - Bildliterale nicht mehr verfügbar

Xcode 10 Release Notes: "Code-Vervollständigung für Swift image literals wurde in Xcode 10 entfernt"

Es ist also kein Fehler, dass ich keine Bilder in den Code einfügen konnte (und ältere Projekte ausführen konnte). Wie fügen wir dann von nun an Bilder in den Code ein, indem wir nur UIImageView(image: akzeptiert kein png oder jpeg.

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

    return image
}()

System: macOS Mojave
Xcode: Xcode 10 Beta 4

73
Pawel Cichonski

So öffnen Sie die Registerkarte "Medienbibliothek":

++M

Zu diesem Zeitpunkt werden in der offiziellen Dokumentation einige Anwendungsfälle in Xcode 10 Beta nicht behandelt, sodass ich keine Möglichkeit finde, den Medienteil an die alte Position zu verschieben.

85
Ron Gahlot

In Xcode 10 und Swift 4.2 wurde nur die Code-Vervollständigungsfunktion (oder die automatische Vervollständigung) von Xcode IDE verwendet für den alten Weg eingestellt. Hier ist der neue Weg:

Geben Sie einfach image literal Ein und das Standardsymbol wird angezeigt.

enter image description here

Doppelklicken Sie auf dieses Symbol, um die Medienbibliothek auf der rechten Seite zu öffnen.

enter image description here

Wählen Sie einfach Ihr Bild und es funktioniert wie zuvor!

enter image description here

Sie können die Medienbibliothek in Xcode verwenden, um Ihrem Code ein Bildliteral hinzuzufügen:

Show XCode media library

Wählen Sie dann ein Bild aus der Bibliothek und ziehen Sie es per Drag & Drop in Ihren Code

Choose image from library

Es wird ein Bildliteral erstellt

44

Für andere mit Legacy-Code, der schnelle Bildliterale verwendet , funktionieren Code und Syntax des Bild-Literal selbst sind noch gültig und funktionieren einwandfrei in Xcode 10 mit Swift 4.2.

Es ist nicht erforderlich, vorhandenen Code, der diese Image-Literale verwendet, zurückzusetzen oder umzugestalten, und sie können weiterhin wie folgt verwendet werden:

imageView.image = #imageLiteral(resourceName: imageNameString)

Nur die Code-Vervollständigungsfunktion (oder die automatische Vervollständigung) des Xcodes IDE wurde eingestellt.


[~ # ~] Update [~ # ~]

Der Unterschied in der bildliteralen Darstellung in früheren und aktuellen Versionen oder Xcode/Swift:

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

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

Wie der Auszug zeigt, wurden Bildliterale in Übereinstimmung mit Miniaturansichten ihres tatsächlichen Bildes dargestellt. Jetzt wird an seiner Stelle jedoch nur ein allgemeines Symbol verwendet. Dies trägt vermutlich dazu bei, die IDE zu entlasten, indem der Aufwand für die Bearbeitung und Anzeige der Inline-Thumbnails beseitigt wird.

19
iSofia

TIPP: Um drei Auflösungen zu korrigieren, nachdem ein wörtliches Bild in den Code eingefügt wurde.
1. Entfernen Sie ein anderes, behalten Sie nur ein Bild
2. Kommentieren Sie Ihren Zeilencode mit einem wörtlichen Bild, dann erscheint das wörtliche Bild im Code wie folgt: #imageLiteral(resourceName: "[email protected]"
3. Entfernen Sie in resourceName den Wert @2x und die Dateierweiterung, z. B. .png, und behalten Sie nur den Bildnamen bei: #imageLiteral(resourceName: "image")
4. Kommentar entfernen! Das Bild wird im Code angezeigt.

11
Wesley Gomes
  • die Verwendung von UIImage (imageLiteralResourceName: 'imageName') gibt kein optionales zurück und funktioniert einwandfrei
1
Francis Ken

ich benutze Xcode 10 Beta 4 und ich habe das gleiche Problem! Auf die alte Weise gelöst, um ein Bild zu übergeben

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