8

I'm trying to use the new #imageLiteral inline image assignment from your assets folder in Xcode 8, where instead of the whole UIImage(named: "") syntax it's just the image displayed, as shown here.

But when I do, I get the error "Expected expression in return result" when it's a function.

Here's a simple example:

func img() -> UIImage {
    return #imageLiteral(resourceName: "small-checkmark")
}

Where in Xcode it displays the small-checkmark as would be expected, but it won't compile due to the above error. Everything is autocompleted for me, the file is in the assets folder (a PDF). I don't understand what's going wrong. If I just return UIImage() it compiles fine.

What should I be doing?

Community
  • 1
  • 1
Doug Smith
  • 29,668
  • 57
  • 204
  • 388

2 Answers2

6

You should check Swift Version.

Build Settings > Use Legacy Swift Language Version = NO

Image Literal is only supported on Swift3.0, not Swift2.3.

kenmaz
  • 106
  • 4
2

For all having the same problem with Xcode 10 / Swift 4.2 -> Unfortunately, this feature (imageLiterals, auto completion ) was deprecated in its previous form.

But there is new way to use imageLiterals -> https://stackoverflow.com/a/52523111/3143890

LukeSideWalker
  • 7,399
  • 2
  • 37
  • 45