Использование неразрешенного идентификатора 'WeekOne' - PullRequest
0 голосов
/ 03 ноября 2019

Я строю массив, который будет отображать изображения в 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 голосов
/ 03 ноября 2019

Чтобы действительно ответить на этот вопрос, нам нужно увидеть, что такое WeekOne. Ошибка предполагает, что вы не определили WeekOne. Проблема с этой ошибкой лежит там.

Вторая ошибка - опечатка в строке видео 2. У вас есть UIImage (класс), когда вы хотите вместо этого имя переменной.

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

Кроме того, условием является сделать так, чтобы имена переменных начинались со строчной буквы, а все имена классов начинались с заглавных букв. WeekOne, WeekTwo и т. Д. Правильнее называть weekOne, weekTwo и т. Д. Это позволяет сразу увидеть, что это за имя.

0 голосов
/ 03 ноября 2019

Если я правильно понимаю ваше требование, то вот что вы ищете.

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) в Активы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...