为什么自定义UITableViewCell没有显示任何属性?

时间:2017-05-01 20:53:05

标签: ios swift uitableview

所以我有一个自定义的UITableVIewCell类:

class MovieTableViewCell: UITableViewCell {

   @IBOutlet weak var movieImageView: UIImageView!
   @IBOutlet weak var titleLabel: UILabel!
   @IBOutlet weak var dateLabel: UILabel!
   @IBOutlet weak var priceLabel: UILabel!

}

并在TableViewController返回单元格

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let tableViewCell: MovieTableViewCell = tableView.dequeueReusableCell(withIdentifier: "movieCell", for: indexPath) as! MovieTableViewCell

    tableViewCell.titleLabel.text = "Title"
    tableViewCell.priceLabel.text = "Price"

    return tableViewCell
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return movies.count
}

我已在viewdidload中将delegatedatasource分配给self,并确保所有reuseIdentifier和name类完全相同。但是当我在模拟器中运行它时,tableview不会返回任何标签。

基本上我有一个名为movies的空数组,并在viewDidLoad中执行网络处理,并将每个对象附加到电影上。这是我的网络功能。

func getAllMovies() {
    Alamofire.request("https://itunes.apple.com/us/rss/topmovies/limit=25/json").responseJSON { (response) in
        if let json = response.result.value as? [String: AnyObject] {
            let feed: [String: AnyObject] = json["feed"] as! [String: AnyObject]
            let entries = feed["entry"] as! NSArray

            for (index, entry) in entries.enumerated() {

                let movie = Movie()

                let dict = entry as! [String: AnyObject]

                if let link = dict["id"]?["label"] {
                    movie.itunesURL = link as! String
                }

                if let title = dict["im:name"]?["label"] {
                    movie.title = title as! String
                } else {
                    movie.title = "No Available"
                }

                if let price = dict["im:price"]?["label"] {
                    movie.price = price as! String
                } else {
                    movie.price = "$0.00"
                }

                if let date = dict["im:releaseDate"]?["label"] {
                    movie.releasedDate = date as! String
                }


                self.images = dict["im:image"] as! NSArray
                self.imgageAttribute = self.images[0] as! [String: AnyObject]

                if let imageURL = self.imgageAttribute["label"] {
                    movie.coverImageURL = imageURL as! String
                }

                self.movies.append(movie)
            }
        }
    }

}

1 个答案:

答案 0 :(得分:1)

执行网络请求后

添加tableView.reloadData()