gpt4 book ai didi

swift - 无法将表达式的类型 '(@!value UIImage?) -> $T3' 转换为类型 'UIImage?'

转载 作者:行者123 更新时间:2023-11-28 13:19:21 25 4
gpt4 key购买 nike

这段代码:

var uiiv = UIImageView()
let nsurl = NSURL(string: "http://...")
var err: NSError?
let nsd: NSData = NSData(contentsOfURL: nsurl, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!
var img = UIImage(data: nsd)
uiiv.image(img)

产生这个错误:

Cannot convert the expression's type '(@!value UIImage?) -> $T3' to type 'UIImage?'

任何人都可以向我解释如何修复此错误,以及错误的实际含义,这对我将来了解 $T3@ 之类的东西会有帮助!value 表示。

最佳答案

您正在使用的 NSData 初始化器需要一个非可选的 NSURL,但是这个初始化器 NSURL(string: "http://...") 返回一个可选的。您可以使用可选绑定(bind)或强制展开 - 在后一种情况下:

let nsurl = NSURL(string: "http://...")!

let nsd: NSData = NSData(contentsOfURL: nsurl!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)!

此外,NSData 初始值设定项本身返回一个可选值,我看到您使用了强制解包 - 在这种情况下我会使用可选绑定(bind),因为 nsd 可以是无:

var uiiv = UIImageView()
let nsurl = NSURL(string: "http://...")!

var err: NSError?
let nsd = NSData(contentsOfURL: nsurl, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: &err)

if let nsd = nsd {
var img = UIImage(data: nsd)
uiiv.image = img
}

至于错误信息:

Cannot convert the expression's type '(@!value UIImage?) -> $T3' to type 'UIImage?'

那是因为您将属性当作方法来使用。

imageUIImage? 类型,但您将其用作获取 UIImage? 并返回未指定类型的函数 T3

通过正确修复代码,错误当然会消失:

uiiv.image = img

关于swift - 无法将表达式的类型 '(@!value UIImage?) -> $T3' 转换为类型 'UIImage?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27146087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com