ios - 类型“streetwearbrand”的值在搜索条码中没有成员“前缀”是什么意思,如何解决?
问题描述
我已经制作了我的搜索代码,它显示了一个错误。有人能帮我吗?谢谢
import UIKit
class streetwearbrand{
var brandkeyword : String?
var brandname : [String]?
init(brandkeyword: String, brandname:[String]) {
self.brandkeyword = brandkeyword
self.brandname = brandname
}
}
class ViewController: UIViewController {
@IBOutlet weak var SignUpButton: UIButton!
@IBOutlet weak var LoginButton: UIButton!
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var searchBar: UISearchBar!
var Streetwearbrand = [streetwearbrand]()
var searchBrand = [String]()
var searching = false
override func viewDidLoad() {
super.viewDidLoad()
Streetwearbrand.append(streetwearbrand.init(brandkeyword: "A", brandname:["A Cold Wall", "Acme De La Vie", "Adidas", "Anti Social Social Club"]))
Streetwearbrand.append(streetwearbrand.init(brandkeyword: "B", brandname:["Balenciaga", "Bape", "Billionaries Boys Club"]))
Streetwearbrand.append(streetwearbrand.init(brandkeyword: "C", brandname:["Carhartt", "Cav Empt", "CDG Play", "Champion"]))
Streetwearbrand.append(streetwearbrand.init(brandkeyword: "D", brandname:["10 Deep"]))
Streetwearbrand.append(streetwearbrand.init(brandkeyword: "E", brandname:["Emotionally Unavailable", "Essential"]))
}
}
extension ViewController: UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate{
func numberOfSections(in tableView: UITableView) -> Int {
return Streetwearbrand.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if searching {
return searchBrand.count
} else {
return Streetwearbrand[section].brandname?.count ?? 0
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
if searching{
cell.textLabel?.text = searchBrand[indexPath.row]
} else {cell.textLabel?.text = Streetwearbrand[indexPath.section].brandname?[indexPath.row]
}
return cell
}
//for title
func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
return Streetwearbrand[section].brandkeyword
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 40))
view.backgroundColor = .lightGray
let label = UILabel(frame: CGRect(x: 15, y: 0, width: view.frame.width - 15, height: 40))
label.text = Streetwearbrand[section].brandkeyword
view.addSubview(label)
return view
}
//to generate the height of the keyword label
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 40
}
// search
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchBrand = Streetwearbrand.filter({$0.prefix(searchText.count) == searchText.lowercased()})
searching = true
tableView.reloadData()
}
func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
searching = false
searchBar.text = ""
tableView.reloadData()
}
}
解决方案
Streetwearbrand.filter({$0.prefix...
在这种情况下$0
是Streetwearbrand
数组中的元素,它是streetwearbrand
.
首先要做的事情——通常用大写来命名类,用小写来命名实例,并希望使用不同的名称,这样你就不会混淆自己。也许类应该是Streetwearbrand
,数组应该是streetweardbrandArray
,但这是个人喜好。
您的问题是该类streetwarebrand
没有实现prefix
方法。我想你想看看一个字符串的属性,也许brandkeyword
像
Streetwearbrand.filter({$0.brandkeyword.prefix...
推荐阅读
- discord.py - A client event prevents my commands from working
- javascript - How to avoid from expose IP address directly in JS?
- angular - how I can get Validators.minLength of form input and set it in html dynamicly?
- linux - Linux - Diff number of lines in 2 set of files
- django - Django- How do I select particular columns from a model?
- logstash - How to get the content of only one field in logstash
- python - Pandas - fill missing date value of dataframe and copying column values except for one
- javascript - html and javascript on a simiple table
- ios - How to handle a voice call using WebRTC in background in iOS Swift
- c# - How to send POST request to SOAP API using HttpClient with Kerberos authentication?