使用未解决的标识符“ WeekOne”

时间:2019-11-03 18:56:54

标签: arrays swift uitableview uiimage

我正在构建一个数组,该数组将在UITableView中显示图像。当我尝试在数组中调用图像时,找不到资产。我在做什么错了?

我们尝试重命名所有变量/数组。

var videos: [Video] = []

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.

    self.view.backgroundColor = UIColor .darkmodeGray
}

func createArray() -> [Video] {

    var tempVideos: [Video] = []

    let video1 = Video(image: WeekOne, title: "StoryOne")
    let video2 = Video(image: UIImage, title: "StoryTwo")
    let video3 = Video(image: WeekThree, title: "StoryThree")
    let video4 = Video(image: WeekFour, title: "StoryFour")
    let video5 = Video(image: WeekFive, title: "StoryFive")
    let video6 = Video(image: WeekSix, title: "StorySix")

    tempVideos.append(video1)
    tempVideos.append(video2)
    tempVideos.append(video3)
    tempVideos.append(video4)
    tempVideos.append(video5)
    tempVideos.append(video6)

    return tempVideos

}


// IN A SEPERATE FILE

import Foundation
import UIKit

class Video {

    var image: UIImage
    var title: String

    init(image: UIImage, title: String)    {
        self.image = image
        self.title = title
    }
}

基于图片后文字的两个不同的错误:

  

使用未解决的标识符“ WeekOne”

  

无法将类型“ UIImage.Type”的值转换为预期的参数类型“ UIImage”

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的要求,那么这就是您要寻找的东西。

let video1 = Video(image: UIImage(imageLiteralResourceName: "WeekOne"), title: "StoryOne")

您需要上述 UIImage 的初始化程序,才能访问添加到素材资源的图像。

上面的代码行将由您的Xcode转换为此。

enter image description here

  

let video2 = Video(image:UIImage,title:“ StoryTwo”)

如果'UIImage'是一个图像名称,建议您更改它,因为这可能会导致歧义。我猜你在那里打错了。您键入 UIImage 而不是 WeekTwo

此外,请确保已将相应的图像(WeekOne,WeekTwo,WeekThree,WeekFour,WeekFive,WeekSix)添加到资产

答案 1 :(得分:0)

要真正回答这个问题,我们需要查看WeekOne是什么。该错误表明您尚未定义WeekOne。该错误的问题就在那里。

第二个错误是您的Video 2行中有错字。当您想要一个变量名时,您就有了UIImage(一个类)。

let video1 = Video(image: WeekOne, title: "StoryOne")
let video2 = Video(image: UIImage, title: "StoryTwo") 

此外,约定是使make变量名以小写字母开头,所有类名以大写字母开头。 WeekOne,WeekTwo等将更恰当地命名为weekOne,weekTwo等。这使得一眼就能看出每个名称是什么类型。