缠误差连接UITbale以火力实时数据库

问题描述 投票:0回答:1

我试图让一个UITableView从火力数据库中读取视频。我已连接到火力数据的基础上。设置我的数据的基础上,如下所示:

enter image description here

我成立了一个结构和链接,并有链接到它的视频。该应用程序读取数据库标题很好,但是当我去点击直接链接到视频的单个细胞我得到一个解缠误差。

enter image description here

所以表视图填充标题视频1视频2,但由于某种原因,这些细胞的arent阅读的链接存储在火力视频文件。

我设置的结构是:enter image description here

在viewcontroller.swift的代码是:

进口UIKit的进口火力地堡进口FirebaseDatabase进口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文件:

enter image description here

它的一个相当简单的项目,但我莫名其妙地卡住了。如果任何人都可以看到我错了,这将是巨大的。

谢谢。

ios swift database firebase-realtime-database swift4
1个回答
1
投票

我认为这个问题是在这一行:

let video = Videos(Title: Title as? String, link: video as? String)

它应该是:

let video = Videos(Title: Title as? String, link: videolink as? String)

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.