为什么我的数据模型没有上传到tableviewcontroller

时间:2019-09-02 11:26:24

标签: swift uitableview

我不知道为什么我不能在桌子上查看宠物。

几天前,该应用程序运行良好,但是当我更新最新版本的Xcode时,该应用程序崩溃了,我看不到运行该应用程序的数据。

我迅速成为新开发人员

请帮助我。

--------------------------------型号---------------- --------

import UIKit

struct InfoPet{

    let PetPicture: String
    let PetBackground: String
    let PetName: String
    let PetAge: String

    static func InfoPets() -> [InfoPet]{
        let pet1 = InfoPet(PetPicture: "Drako", PetBackground: "Background Can", PetName: "Drako", PetAge: "2 years old")
        let pet2 = InfoPet(PetPicture: "Lucky", PetBackground: "Background Cat", PetName: "Lucky", PetAge: "3 years old")

        return [pet1, pet2]
    }

}


----------- TableViewController ----------------


class PetsTableViewController: UITableViewController {

    // MARK: - Global Var

    var pets: [InfoPet] = InfoPet.InfoPets()


    // MARK: - UITableViewDataSource
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return pets.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "PetCell", for: indexPath) as! PetsTableViewCell
        let pet =  pets[indexPath.row]

        cell.pet = pet

        return cell
    }

    // MARK: - UITableViewDalegate

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
    }

}

----------------------- tableViewCell -----------------------


class PetsTableViewCell: UITableViewCell {

    @IBOutlet weak var ImgPhotoPet: UIImageView!
    @IBOutlet weak var ImgBackgroundPet: UIImageView!
    @IBOutlet weak var LblNamePet: UILabel!
    @IBOutlet weak var LblAgePet: UILabel!

    var pet: InfoPet!{
        didSet{
            updateUI()
        }
    }

    func updateUI() {
        ImgBackgroundPet.image = UIImage(named: pet.PetBackground)
        ImgPhotoPet.image = UIImage(named: pet.PetPicture)
        ImgPhotoPet.layer.cornerRadius = 10.0
        ImgPhotoPet.layer.masksToBounds = true
        LblNamePet.text = pet.PetName
        LblAgePet.text = pet.PetAge
    }

}

1 个答案:

答案 0 :(得分:0)

将单元格标识符添加为“ PetCell”

并在PetsTableViewController类中添加viewDidLoad方法。

创建表视图的IBOutlet。

@IBOutlet weak var tableview: UITableView!
override func viewDidLoad() {
    super.viewDidLoad()
    tableview.dataSource = self
    tableview.delegate = self
}