Ios 打印tableview的计数时出现问题

Ios 打印tableview的计数时出现问题,ios,swift,Ios,Swift,我想打印出在OrderNumberLabel中添加到我的tableview的行数,例如,如果有人在table view中添加了4项,我想让它计算并打印出OrderNumberLabel中的数字4。这可能吗?我尝试了一些方法,但都没有为我工作,任何帮助将不胜感激 import UIKit import SafariServices class ViewController: UIViewController, UIAdaptivePresentationControllerDelegate, U

我想打印出在OrderNumberLabel中添加到我的tableview的行数,例如,如果有人在table view中添加了4项,我想让它计算并打印出OrderNumberLabel中的数字4。这可能吗?我尝试了一些方法,但都没有为我工作,任何帮助将不胜感激

import UIKit
import SafariServices

class ViewController: UIViewController, UIAdaptivePresentationControllerDelegate, UITextFieldDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!

    @IBOutlet weak var OrderNumberLabel: RoundedLabel2!
    @IBOutlet weak var CostLabel: RoundedLabel2!
    @IBOutlet weak var ProfitsLabel: RoundedLabel2!


    @IBOutlet weak var itemTextField: UITextField!
    @IBOutlet weak var pricesTextField: UITextField!
    @IBOutlet weak var salepriceTextField: UITextField!

    var items: [ItemRow] = []

  struct ItemRow: Codable {
        var item: String
        var price: Double
        var salePrice: Double

        private enum CodingKeys : String, CodingKey {case item, price, salePrice}

        var profit : Double {
           return salePrice - price
        }

        var cost : Double {
           return price
        }
    }


        override func viewDidLoad() {
            super.viewDidLoad()
            load()
            updateProfitLabel()
            updateCostLabel()


        }

    override var prefersStatusBarHidden: Bool {
         return true
     }

    func save(){
        if let data = try? PropertyListEncoder().encode(items) {
            UserDefaults.standard.set(data, forKey: "Saved")
        }

    }

    func load(){
        let defaults = UserDefaults.standard
        if let data = defaults.data(forKey: "Saved") {
            items = try! PropertyListDecoder().decode([ItemRow].self, from: data)


        }

    }

    @IBAction func addButtonTapped(_ sender: Any) {

        insertNewItems()
        save()


    }




        func insertNewItems() {

            let price = Double(pricesTextField.text!) ?? 0.0
            let salePrice = Double(salepriceTextField.text!) ?? 0.0

            let newVideoRow = ItemRow(item: itemTextField.text!, price: price, salePrice: salePrice)
            items.append(newVideoRow)
            let indexPath = IndexPath(row: items.count - 1, section: 0)
            tableView.insertRows(at: [indexPath], with: .automatic)

            updateProfitLabel()
            updateCostLabel()
            itemTextField.text = ""
            pricesTextField.text = ""
            salepriceTextField.text = ""
            view.endEditing(true)
        }

    func updateProfitLabel() {
       let profitTotal = items.map{$0.profit}.reduce(0.0, +)
       ProfitsLabel.text = String(format: "%.2f", profitTotal)
    }

    func updateCostLabel() {
       let costTotal = items.map{$0.cost}.reduce(0.0, +)
       CostLabel.text = String(format: "%.2f", costTotal)
    }



    }





    extension ViewController: UITableViewDelegate{

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


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

             let ItemTitle = items[indexPath.row]

               let cell = tableView.dequeueReusableCell(withIdentifier: "ItemCell") as! ItemCell
               cell.itemLabel.text = ItemTitle.item
               cell.priceLabel.text = String(format: "%.2f", ItemTitle.price)
               cell.saleLabel.text = String(format: "%.2f", ItemTitle.salePrice)
                tableView.separatorColor = UIColor(red:0, green:0, blue:0, alpha:1.0)
                cell.contentView.backgroundColor = UIColor(red:0.13, green:0.13, blue:0.13, alpha:1.0)
               return cell
        }


        func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
            return true
        }


        func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
           if editingStyle == .delete {
                items.remove(at: indexPath.row)
                tableView.deleteRows(at: [indexPath], with: .automatic)
                save()
            }
        }
}
尝试:


您只想在订单编号标签中显示
项。count
?(顺便说一句,它应该是
orderNumberLabel
-变量和常量按惯例以小写字母开头基本上是的,只是希望它在标签中显示表视图的计数如果这样,只需设置
项。count
orderNumberLabel。text
无法将类型“String?”的值指定给类型“Int”,这是错误i Get如果要将其保存为用户默认值,只需执行以下操作:Userdefaults.standard.set(orderNumberLabel.text,forKey:“ItemsPurchased”)。然后从用户默认值获取它:orderNumberLabel.text=Userdefaults.standard.string(forKey:“ItemsPurchased”)。
orderNumberLabel.text = String(items.count)