【问题标题】:Cannot find an initializer for type UIImage that accepts an argument list of type string找不到接受字符串类型参数列表的 UIImage 类型的初始化程序
【发布时间】:2015-07-29 08:15:04
【问题描述】:

目前,此代码正在运行,但 paris 是一个固定值,我想输入一个变量,并在之前定义它。

let entry1 = data.paris[indexPath.row]
let  image = UIImage(named: entry1.filename)
cell2.bkImageView2.image = image
cell2.headingLabel2.text = entry1.heading

但是当我这样做时,会出现错误。找不到接受类型参数列表的 UIImage 类型的初始化程序(命名:字符串?!)

let key1 = "paris"
let entry1 = data[key1][indexPath.row]
let  image = UIImage(named: entry1.filename)
cell2.bkImageView2.image = image
cell2.headingLabel2.text = entry1.heading

你有什么信息可以帮助我吗?

编辑:7 月 29 日 13:12

好的,按照你的解释,我有这个:

var entry = data[key][indexPath.row]
if let imgName = entry1.filename {
            let  image = UIImage(named: imgName!)
            cell2.bkImageView2.image = image
            cell2.headingLabel2.text = entry1.heading
        }

但是现在,我最后一句(cell2.headinglabel...)仍然有错误:“标题”的模糊使用

有什么想法吗?但是对于之前的要求,完美!做得好 ! :)

【问题讨论】:

    标签: ios swift initializer-list


    【解决方案1】:

    表示entry1.filename是可选字符串,不是字符串,试试这个:

    if let imgName = entry1.filename {
        let  image = UIImage(named: imgName)
    }
    

    请记住,图片也是可选的。

    【讨论】:

    • 当我使用固定值时应该是一样的(就像上面的巴黎一样),不是吗?我不明白为什么,当我使用变量时,会出现这个问题。
    • 在您的示例中,paris 是一个字符串,但数据字典返回一个可选值(因为定义的键可能没有值)所以您的 entry1 是可选的,这就是您必须打开它的原因。
    • @HugoCELLA 试试:cell2.headingLabel2.text = entry1!.heading
    • 我会做的。为什么我必须这样做?你有什么链接可以了解吗?谢谢
    • 我将在 4 小时内访问我的计算机。我让你知道谢谢
    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多