import UIKit
let cellid = "cell"
class Post {
var videoName: String?
var videoDescription: String?
}
class VideoFeedController: UICollectionViewController, UICollectionViewDelegateFlowLayout {
var posts = [Post]()
var json: [Any]?
var names: [String] = []
var contacts: [String] = []
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let CatagoryMain = Post()
CatagoryMain.videoDescription = "example text"
CatagoryMain.videoName = "wewewewew"
posts.append(CatagoryMain)
collectionView?.backgroundColor = UIColor.white
navigationItem.title = "Main Video Feed"
collectionView?.alwaysBounceVertical = true
collectionView?.register(VideoFeedCell.self, forCellWithReuseIdentifier: cellid)
let urlString = "example url"
let url = URL(string: urlString)
URLSession.shared.dataTask(with:url!) { (data, response, error) in
if error != nil {
print("failed")
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
let currentVideo = parsedData["video"] as! [String:Any]
if let currentVideoTitle = currentVideo["title"] as? String {
print(currentVideoTitle)
// have text display instead of wewewew and example text
}
} catch let error as NSError {
print(error)
}
}
}.resume()
}
所以现在它说视频描述的示例文本,我们为视频名称和那些显示正常。我试图从json获取信息,而不是示例文本它将有描述而不是wewewewew它会有我认为会像这样的视频名称
if let currentVideoTitle = currentVideo["title"] as? String {
print(currentVideoTitle)
CatagoryMain.videoDescription = "\(currentVideoTitle)"
CatagoryMain.videoName = "\(currentVideoTitle)"
posts.append(CatagoryMain)
}
然而这是错误的,如果我这样做,除了导航栏和导航栏的标题之外,屏幕上没有显示任何内容。如果您能提供帮助,请提前感谢您!顺便说一句,实际标题确实显示在控制台中。
答案 0 :(得分:0)
就像我上面留下的评论一样,我们需要更多的代码来弄清楚情况并帮助你:)你的问题有点不清楚。
然而这是错误的,如果我这样做,屏幕上没有任何显示 除了导航栏和导航栏的标题。
你的意思是UICollectionView
没有加载数据?或者数据没有加载到posts
数组中?是collectionView
甚至是初始化的?
另外,想看一下parsedData
对象。在使用collectionView
时,这意味着您要显示多个单元格。但是你的解析代码看起来不像你正在解析一个对象数组。(但只有一个对象??)
快速建议,
1.打印posts.counts
以查看是否有数据?
2.如果有任何数据,请在向collectionView.reloadData()
添加数据后添加posts
。