swift - 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([
])
}
}
解决方案
您必须附加实例,而不是类型
let modelData = Model(amount: amount, email: email)
self.postData.append(modelData)
并且永远不要将结构中的成员声明为隐式未包装的可选
struct Model {
var amount: String
var email: String
}
推荐阅读
- javascript - 如何在d3 v4中垂直添加交错色带
- kotlin - Replace () -> Unit 为简单的 RxJava 解决方案
- c# - 在 Plesk 中禁止使用 Asp.Net MVC
- blockchain - 如何在 Namecoin 区块链或任何基于身份的区块链(如 Emercoin)上存储和查询数据
- reactjs - React 模型打开时滚动到底部
- c# - 将 C# dll 与 G-WAN 一起使用
- powershell - 在启用代理的情况下为 Windows Server 扫描 AD
- r - RStudio 打开后立即冻结
- postgresql - 在 PITR 之后 recovery.conf 没有更改为 recovery.done
- java - 无法在嵌入的 Eclipse Tomcat 上运行 Spring Boot 应用程序