我想把三个数组放在swift 4(表视图)的一个数组中

我想把三个数组放在swift 4(表视图)的一个数组中,swift,Swift,我想把所有的数组放在一个数组中,如果可以的话,我想把不断变化的图像代码放在一个数组中 let priceData = ["$7.99", "$4.59", "$2.29", "$1.19", "$2.29" , "$1.19"] let appNAme = ["Minecraft: Pocket Edition","Enlight", "Geometry Dash", "Plague Inc.", "R.B.I. Baseball 15", "Heads Up!"] let re

我想把所有的数组放在一个数组中,如果可以的话,我想把不断变化的图像代码放在一个数组中

let priceData = ["$7.99", "$4.59", "$2.29", "$1.19", "$2.29" , "$1.19"]
    let appNAme = ["Minecraft: Pocket Edition","Enlight", "Geometry Dash", "Plague Inc.", "R.B.I. Baseball 15", "Heads Up!"]
    let reviewsNumberData = ["(167)", "(71)", "(975)", "(629)", "(12)", "(5)"]


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

    let cell = myTableView.dequeueReusableCell(withIdentifier: "MyCell") as! MyCellTableViewCell

                // Setting Revies Number Label

    cell.reviewsNumberLabel.text = reviewsNumberData[indexPath.row]

                // Setting In-App Purchases label

        // Hide In-App Purchases in Row 1 ---
    if(indexPath.row == 1) {
        cell.inappLabel.isHidden = true
    }
        // Hide In-App Purchases in Row 2 ---
    if(indexPath.row == 2) {
        cell.inappLabel.isHidden = true
    }

        // Hide In-App Purchases in Row 4 ---
        if(indexPath.row == 4) {
            cell.inappLabel.isHidden = true
    }
                // Setting Counter for Apps

    cell.appCount.text = "\(indexPath.row + 1)"

                // Setting Type of App

    if(indexPath.row == 1){
        cell.appTypeLabel.text = "Photo & Video"
    }

                // Setting App Name

    cell.appNameLabel.text = appNAme[indexPath.row]

                // Setting Price Button

    cell.priceButton.titleLabel?.text = "ddd"
    cell.priceButton.setTitle(priceData[indexPath.row], for: .normal)

                 // Setting Image Change

    // Enlight
    if(indexPath.row == 1){
        cell.appImage.image = UIImage(named: "Enlight")
    }

    // Geometry Dash
    if(indexPath.row == 2){
        cell.appImage.image = UIImage(named: "GeometryDash")
    }

    // Plague Inc
    if(indexPath.row == 3){
        cell.appImage.image = UIImage(named: "plague")
    }
    // Rbi Baseball
    if(indexPath.row == 4){
        cell.appImage.image = UIImage(named: "Baseball")
    }
    // Heads Up !
    if(indexPath.row == 5){
        cell.appImage.image = UIImage(named: "HeadsUp")
    }


    return cell

使用属性创建一个结构

struct Item {
    var price: String
    var name: String
    var reviews: String
    var image: UIImage
    var inappLabelShow = false
}
并创建项的数组

var items = [Item]()
在tableview数据源方法中使用此数组

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = myTableView.dequeueReusableCell(withIdentifier: "MyCell") as! MyCellTableViewCell

    cell.reviewsNumberLabel.text = items[indexPath.row].reviews
    cell.appImage.image = items[indexPath.row].image
    cell.appNameLabel.text = items[indexPath.row].name
    cell.priceButton.setTitle(items[indexPath.row].price, for: .normal)
    cell.inappLabel.isHidden = items[indexPath.row].inappLabelShow
    return cell
}
可以通过枚举数组对象来创建结构对象

let item1 = Item(price: "$7.99", name: "Minecraft: Pocket Edition", reviews: "(167)", image: nil)
items.append(item1)
let item2 = Item(price: "$4.59", name: "Enlight", reviews: "(71)", image: UIImage(named: "Enlight"), inappLabelShow: true)
items.append(item2)

实现这一点的一种更可读、更可靠的方法是将数据保存在
结构中,而不是使用大量数组

struct appItem {
    var name: String
    var price: Double
    var imageName: String // Store as string 
    var reviews: Int
    var inAppPurchases: Bool
    // These properties could all be strings if you prefer
}
您可以创建以下自定义项的数组:

var apps = [AppItem]()
apps.append(name: "My App", price: 7.00, imageName: "appImage1", reviews: 23, inAppPurchases: true)
// Add as many as you like
然后访问tableview委托方法中的数据:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    guard let cell = myTableView.dequeueReusableCell(withIdentifier: "MyCell") as! MyCellTableViewCell else { return }
    cell.nameLabel.text = apps[indexPath.row].name
    cell.imageView.image = UIImage(named: apps[indexPath.row].imageName)
    // Repeat for other properties
    return cell
}