Я пытаюсь получить UITableview для чтения видео из базы данных firebase. Я подключился к базе данных firebase. настройте мою базу данных, как показано:
Я настроил структуру и связал и связал видео с ней. Приложение отлично читает заголовок базы данных, но когда я нажимаю на отдельные ячейки, которые напрямую ссылаются на видео, я получаю ошибку распаковки.
Таким образом, представление таблицы заполнено заголовком видео 1 и видео 2, но по какой-то причине эти ячейки не читают ссылку на видеофайл, хранящийся в firebase.
Структура, которую я установил:

Код в viewcontroller.swift:
импортировать UIKit импортировать Firebase импортировать базу данных Firebase импортировать AVKit импортировать AVFoundation
класс ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var table = [Videos]()
var ref: DatabaseReference!
@IBOutlet weak var Tableview: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference().child("videos")
ref.observe(DataEventType.value, with: {(snapshot) in
if snapshot.childrenCount > 0 {
self.table.removeAll()
for video in snapshot.children.allObjects as! [DataSnapshot] {
let Object = video.value as? [String: AnyObject]
let Title = Object?["Title"]
let videolink = Object?["link"]
let video = Videos(Title: Title as? String, link: video as? String)
self.table.append(video)
self.Tableview.reloadData()
}
}
})
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return table.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = Tableview.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell
let video: Videos
video = table[indexPath.row]
cell.titleLabel.text = video.Title
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
guard let videoURL = URL(string: table[indexPath.row].link!) else {
return
}
let player = AVPlayer(url: videoURL)
let controller = AVPlayerViewController()
controller.player = player
present(controller, animated: true) {
player.play()
}
}
}
Единственное, что у меня есть, это файл TableViewCell.swift:
это довольно простой проект, но я как-то застрял. если кто-нибудь может увидеть, где я ошибаюсь, это было бы здорово.
Спасибо.





Я думаю, что проблема в этой строке:
let video = Videos(Title: Title as? String, link: video as? String)
Должен быть:
let video = Videos(Title: Title as? String, link: videolink as? String)
Надеюсь это поможет.