Xcode 10: los literales de imágenes ya no están disponibles.
image beta (7)
¡Estoy usando Xcode 10 beta 4 y tengo el mismo problema! Resuelto utilizando la forma antigua de pasar una imagen.
PizzaModel(
nome: "Marinara",
ingredienti: "Pomodoro, Aglio",
calorie: "729",
img: UIImage(named: "marinara")!
)
Notas de la versión de Xcode 10: "La terminación de código para los literales de imagen Swift se ha eliminado en Xcode 10"
Entonces no es un error que no pueda agregar imágenes en el código (y ejecutar proyectos anteriores).
¿Cómo podemos agregar imágenes a partir de ahora en el código simplemente escribiendo
UIImageView(image:
no aceptará ningún png o jpeg)?
let cellImage: UIImageView = {
let image = UIImageView(image: ???))
return image
}()
Sistema: macOS Mojave
Xcode: Xcode 10 Beta 4
En Xcode 10 y Swift 4.2 , solo la función de finalización de código (o autocompletar) del IDE de Xcode ha sido descontinuada por el método anterior. Aquí está la nueva forma:
Simplemente escriba la
image literal
y se completará con el icono predeterminado.
Haga doble clic en este icono y se abrirá la biblioteca de medios a la derecha.
Simplemente elige tu imagen y funciona como antes!
Encontró el acceso directo para abrir la pestaña de la biblioteca de medios:
⇧ + ⌘ + M
En este punto, la documentación oficial no cubre algunos casos de uso en Xcode 10 beta, por lo que no puedo encontrar una manera de mover la parte de medios a la posición anterior.
Para el beneficio de otros con código heredado que utiliza los literales de imagen de Swift, el código y la sintaxis de la función de literal de imagen en sí mismos siguen siendo válidos y funcionan perfectamente bien en Xcode 10 con Swift 4.2.
No es necesario revertir o refactorizar el código existente que utiliza estos literales de imagen, y aún se pueden usar de la siguiente manera:
imageView.image = #imageLiteral(resourceName: imageNameString)
Solo se ha interrumpido la función de finalización de código (o autocompletar) del IDE de Xcode.
ACTUALIZAR
La diferencia en la representación literal de la imagen en versiones anteriores y actuales o Xcode / Swift:
image = #imageLiteral(resourceName: "flower.jpg")
Como se ilustra en el extracto, los literales de imágenes se representaron en línea con miniaturas de su imagen real. Sin embargo, ahora, solo se usa un icono genérico en su lugar. Presumiblemente, esto se dirige a reducir la carga en el IDE, eliminando los gastos generales de manejo y mostrando las miniaturas en línea.
CONSEJO: Para arreglar tres resoluciones después de agregar una imagen literal en el código.
1. Remueve otra, guarda solo una imagen.
2. Comente su código de línea con una imagen literal, luego aparecerá una imagen literal en el código, como:
#imageLiteral(resourceName: "[email protected]"
3. en el valor de
resourceName
, elimine
@2x
y la extensión de archivo, como
.png
, mantenga solo el nombre de la imagen:
#imageLiteral(resourceName: "image")
4. ¡Descomentar!
La imagen se mostrará en código.
- el uso de UIImage (imageLiteralResourceName: ''imageName'') no devolverá un opcional y funciona bien