swift - 无法将类型 'UIImage?' 的值分配给类型 'String!'

标签 swift

我正在尝试调用图像但出现错误“无法分配‘UIImage 类型的值?’”在“vc.sentData2 = image”行中键入“字符串!”。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if (segue.identifier == "DetailView"){
        let vc = segue.destinationViewController as! DetailViewController

        if let indexPath = self.tableView.indexPathForSelectedRow{
            let Title = names[indexPath.row] as String
            vc.sentData1 = Title

            let url = NSURL(string: images[indexPath.row])
            let data = NSData(contentsOfURL: url!)
            let image = UIImage(data: data!)
            vc.sentData2 = image
        }
    }
}

非常感谢您的帮助。

最佳答案

很明显,在 DetailViewController 的定义中,您已将 sentData2 声明为 String! 而且,在这种情况下,您正在尝试将 UIImage?(UIImage(data:) 的结果始终是 UIImage?,因为可能没有有效图像)分配给字符串!

所以,改变

var sentData2: String!

在 DetailViewController 中

var sentData2: UIImage?

关于swift - 无法将类型 'UIImage?' 的值分配给类型 'String!',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36242889/

相关文章:

ios - 没有使用 Objective-C 选择器 ('nextPage' 声明的方法)

iOS:关闭 View Controller 并推送新 View 而不在导航堆栈中显示当前 View

ios - 在不使用实时数据库的情况下使用 while 循环从 Firebase 存储检索和加载图像?

ios - 我的 Firebase 观察者不会停止观察

xcode - 我的主视图 Controller 中的功能不起作用

json - Realm 与 swift : don't update a column after first load

swift - 在进行 POST 之前等待找到坐标

ios - 尝试显示 Flurry 横幅广告时出现未知错误

iOS 8 : Remove Underline from UITableViewRowAction

ios - 在 Swift 4 上为 Google ML Vision 框架旋转 UIImage