gpt4 book ai didi

ios - 调用中缺少参数参数

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:33 24 4
gpt4 key购买 nike

swift (3) 和 Xcode (8) 的新手,我正在使用 firebase 在 tableView 中加载一些数据。当我尝试构建应用程序时,我在调用 WhiskeyItem 的实例时在我的 fetchWhiskey 函数中收到错误:"Missing argument for parameter name in call"。我无法弄清楚为什么会发生此错误。谁能帮帮我?

这是我的类(class):

import UIKit
class WhiskeyItem {
let wName: String
let wType: String

init(wName: String, wType: String) {
self.wName = wName
self.wType = wType
}
}

这里是我要加载数据的 tableView:

import UIKit
import Firebase
import FirebaseDatabase

class FirstViewTableViewController: UITableViewController, UISearchBarDelegate {

let whiskeySearchBar = UISearchBar()
var ref: FIRDatabaseReference?
var refHandle: UInt!
var whiskeyList = [WhiskeyItem]()

let cell = "cell"

override func viewDidLoad() {

super.viewDidLoad()

createWhiskeySearchBar()

//Display Firebase whiskey data:
ref = FIRDatabase.database().reference()
fetchWhiskey()

}

func createWhiskeySearchBar() {

whiskeySearchBar.showsCancelButton = false
whiskeySearchBar.placeholder = "Search whiskeys"
whiskeySearchBar.delegate = self

self.navigationItem.titleView = whiskeySearchBar
}

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


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

// Configure the cell...

cell.textLabel?.text = whiskeyList[indexPath.row].wName

return cell
}




func fetchWhiskey() {
refHandle = ref?.child("whiskey").observe(.childAdded, with: { (snapshot) in
if let dictionary = snapshot.value as? [String : AnyObject] {

print(dictionary)
let whiskeyItemInstance = WhiskeyItem()

whiskeyItemInstance.setValuesForKeys(dictionary)
self.whiskeyList.append(whiskeyItemInstance)

DispatchQueue.main.async {
self.tableView.reloadData()
}
}
})

}

最佳答案

你的初始化器有两个参数,调用它时需要。

正确调用它看起来像这样:

let whiskeyItemInstance = WhiskeyItem(wName: "name", wType: "type")

如果您不想将参数传递给初始化程序,您可以提供默认参数:

init(wName: String = "default name", wType: String = "default type") {

或者使用一个完全没有参数的初始化器:

init() {
self.wName = "wName"
self.wType = "wType"
}

或者像这样调用你已经创建的初始化器:

convenience init() {
self.init(wName: "default name", wType: "default type")
}

或者你可以完全放弃初始化器:

class WhiskeyItem {
let wName: String = "asdf"
let wType: String = "asdf"
}

关于ios - 调用中缺少参数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43646265/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com