类型“ UITableViewCell”的值在多个TableView中没有成员“名称”

时间:2018-08-21 21:20:57

标签: ios swift uitableview

我试图用两个TableView制作ViewController,但是遇到了问题。

class FirstViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tableTN: UITableView!
@IBOutlet weak var tableMainNews: UITableView!

var topnews: [TopNews]? = []
var mainnews: [Mainnewsfeed]? = []

override func viewDidLoad() {
    super.viewDidLoad()
    TopNewsJSON()
    MainNewsJSON()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell:UITableViewCell?

    if tableView == self.tableTN {
        cell = tableView.dequeueReusableCell(withIdentifier: "topnewsCell", for:indexPath) as! TopNewsCell
        cell!.imgTN!.downloadImage(from: (self.topnews?[indexPath.item].image!)!)
        cell!.titleTN!.text = self.topnews?[indexPath.item].headline
    }

    if tableView == self.tableMainNews {
        cell = tableView.dequeueReusableCell(withIdentifier: "mainnewsCell", for:indexPath) as! MainNewsCell
        cell!.mainnews_title!.text = self.mainnews?[indexPath.item].headline
    }
    return cell!
}


func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    var count:Int?

    if tableView == self.tableTN {
        count = self.topnews!.count
    }

    if tableView == self.tableMainNews {
        count = self.mainnews!.count
    }

    return count!
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    //print(indexPath)
}

func TopNewsJSON () {
     let urlRequest = URLRequest(url: URL(string: "https://sportarena.com/wp-api/topnews2018/top/")!)

     let task = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in

        if error != nil {
            print(error as Any)
            return
        }

        self.topnews = [TopNews]()
        do {
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]

            //print(json)
            let TN = TopNews()
            let jarray = json["top-news"] as! NSArray
            let jarray1 = jarray[0] as? [String: AnyObject]
            if let ID = jarray1!["ID"] as? String,
                let title =  jarray1!["title"] as? String,
                let img = jarray1!["img"] as? String {
                    TN.headline = title
                    TN.image = img
                    TN.id = ID
                }
                self.topnews?.append(TN)

                DispatchQueue.main.async {
                    self.tableTN.reloadData()
                }

        } catch let error {
            print(error)
        }
    }
    task.resume()
}

func MainNewsJSON () {
    let urlRequest = URLRequest(url: URL(string: "anyurl")!)

    let task = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in

        if error != nil {
            print(error as Any)
            return
        }
        //self.mainnews = [MainNews]()
        do {
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]

            let jarray = json["general-news"] as! NSArray
            let jarray1 = jarray[0]

            for jarray1 in jarray1 as! [[String: Any]] {
                let MNF = Mainnewsfeed()
                if let ID = jarray1["id"],
                    let title = jarray1["title"],
                    let time = jarray1["datetime"] {
                    MNF.headline = title as? String
                    MNF.id = ID as? String
                    MNF.time = time as? String
                }
                self.mainnews?.append(MNF)

                DispatchQueue.main.async {
                    self.tableMainNews.reloadData()
                }
            }

        } catch let error {
            print(error)
        }
    }
    task.resume()
}
}
}

以三行作为 cell!.titleTN!.text = self.topnews?[indexPath.item] .headline 后,其他显示错误:“ UITableViewCell类型的值没有成员'titleTN '”(或“ imgTN”和“ mainnews_title”)

错误在哪里?我需要在代码中进行哪些更改?

请帮助我。

1 个答案:

答案 0 :(得分:1)

您可以尝试

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if tableView == self.tableTN {
        let cell = tableView.dequeueReusableCell(withIdentifier: "topnewsCell", for:indexPath) as! TopNewsCell
        cell.imgTN!.downloadImage(from: (self.topnews?[indexPath.item].image!)!)
        cell.titleTN!.text = self.topnews?[indexPath.item].headline
        return cell
    }
    else
    {
       let cell = tableView.dequeueReusableCell(withIdentifier: "mainnewsCell", for:indexPath) as! MainNewsCell
       cell.mainnews_title!.text = self.mainnews?[indexPath.item].headline
       return cell
    }

}