Dans Xcode 8, les images sont complétées automatiquement lors de la saisie.
La question est: Pourquoi?
J'ai essayé d'initier UIImage avec le résultat suggéré, mais cela ne fonctionne pas.
Quelqu'un sait-il comment l'utiliser?
Xcode 8 reconnaîtra automatiquement toutes les images que vous avez dans un catalogue d'actifs et les proposera comme suggestion à l'intérieur d'un initialiseur UIImage.
Donc, fondamentalement, ce que vous devez faire est juste ce qui suit (comme vous l'avez fait dans votre question, mais il doit y avoir autre chose qui le dérange):
let i = voiture // image name
Et puis utilisez simplement i
lorsque vous souhaitez définir une image.
Sous le capot, il crée un code qui ressemble à ceci: #imageLiteral(resourceName: "voiture.png")
. Mais en ligne dans l'éditeur de source, vous ne verrez que le nom de fichier de l'image. La syntaxe #imageLiteral
N'est reconnue que sur Swift 3 ou version ultérieure.
Ici est un lien de démonstration vidéo où je fais cela et ici est un lien vers un exemple de projet que j'ai créé.
Notez que vous devez cliquer sur la suggestion instellisense pour que vous voyiez une vignette de l'image dans le code puis le nom de l'image.
Mise à jour :
Cette fonctionnalité reste dans Xcode Version 9.0 beta 6 (9M214v)
Je ne suis pas en mesure de trouver une source "officielle" pour cela, mais d'après mes tests personnels, il semble que bien que la saisie semi-automatique fonctionne dans les deux Swift 2.3 et Swift 3.0, les littéraux d'image ne fonctionneront correctement que dans un projet Swift 3.
Essayez-le dans une aire de jeux Swift 3 et vous verrez que cela fonctionne très bien.
Un littéral d'image est déjà un UIImage, vous n'avez pas besoin de le passer à un UIImage pour en initialiser un.
J'utilise cette fonctionnalité. Fondamentalement, si j'ai une image qui commence par "ic", je taperais let i =
suivi de ic
. À ce stade, Xcode 8 affichera une liste déroulante d'images et je choisirai ensuite l'image correcte dans la liste. Je n'ai jamais pris la peine de taper réellement UIImage(
. Il fonctionne comme le code de saisie semi-automatique, sauf qu'il utilise le nom de fichier de l'image.
Dans votre cas, il existe probablement un autre problème entraînant l'échec de la compilation.