首页 > 解决方案 > swift:无法将类型“()”的值转换为预期的参数类型“”

问题描述

我不断收到这个错误,我不知道如何摆脱它,有人可以帮忙吗?错误发生在这一行:

“self.postData.append(模型)”

struct Model {
   var amount: String!
   var email: String!
   }

class PayoutRequestsVC: UIViewController, UITableViewDelegate,UITableViewDataSource {
    
    let tableView = UITableView()
    
    var ref:DatabaseReference?
    var databaseHandle:DatabaseHandle?
    
    var postData = [Model]()
    var descData = [String]()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = .white
        setupViews()
        tableView.delegate = self
        tableView.dataSource = self
        
            ref = Database.database().reference()

            databaseHandle = ref?.child("Payouts").observe(DataEventType.value, with: { (snapshot) in
                if snapshot.childrenCount > 0 {
                    self.postData.removeAll()

                    for data in snapshot.children.allObjects as![DataSnapshot] {
                        let post = data.value as? [String: AnyObject]
                        let amount = post?["amount"] as? String ?? ""
                        let email = post?["email"] as? String ?? ""
                        let modelData = Model(amount: amount, email: email)
                        self.postData.append(Model)
                    }
                    self.tableView.reloadData()
                }
            })
        }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.postData.count
    }
    internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath)
        
        let model: Model
        model = self.postData[indexPath.row]
        
        cell.textLabel?.text = model.amount
        cell.detailTextLabel?.text = model.email
        
        return cell
        
    }

    func setupViews() {

        
        NSLayoutConstraint.activate([
     
        ])
    }
}

标签: swiftfirebaseuitableviewfirebase-realtime-database

解决方案


您必须附加实例,而不是类型

let modelData = Model(amount: amount, email: email)
self.postData.append(modelData)

并且永远不要将结构中的成员声明为隐式未包装的可选

struct Model { 
   var amount: String 
   var email: String 
}

推荐阅读