Could not find an overload for “init” that accepts the supplied arguments in Swift

后端 未结 3 735
长发绾君心
长发绾君心 2020-12-19 17:42

I am trying to figure out how to translate this in Swift and I am also having this error: \"Could not find an overload for “init” that accepts the supplied arguments\". Any

相关标签:
3条回答
  • 2020-12-19 18:12

    Unwrap those optionals. A UIImage is not the same as a UIImage?, which is what the named: initializer returns. Thus:

    var pageImages = [UIImage(named: "example.png")!, UIImage(named: "example2.png")!]
    

    (Unless, of course, you actually want an array of optional UIImages.)

    0 讨论(0)
  • 2020-12-19 18:19

    UIImage(named:) changed to be a failable initializer in Xcode 6.1, which means that it will return nil if any of the images you've listed are missing from your bundle. To safely load the images, try something like this instead:

    var pageImages = [UIImage]()
    for name in ["example.png", "example2.png"] {
        if let image = UIImage(named: name) {
            pageImages.append(image)
        }
    }
    
    0 讨论(0)
  • 2020-12-19 18:28

    Confirming what matt says:

    in xCode 6.0 this does work:

    images = [UIImage(named: "steps_normal"), UIImage(named: "steps_big")]
    

    but in xCode6.1 values should be unwrapped:

    images = [UIImage(named: "steps_normal")!, UIImage(named: "steps_big")!]
    
    0 讨论(0)
提交回复
热议问题