0
这里的任何方法对我的类的代码返回的cellForRowAtIndexPath错误:不覆盖从超
import UIKit
class VideoSearchController: UITableViewController, UISearchResultsUpdating {
var searchResults: NSDictionary = [:]
let searchController = UISearchController(searchResultsController: nil)
// Can't override
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath as IndexPath) as! SearchTableCell
cell.videoTitle.text = "This is the title"
cell.viewCount.text = "1,234,567"
cell.channelName.text = "benlvn"
let url = URL(string: "https://i.redd.it/78r3ttko3nnz.jpg")
let data = try? Data(contentsOf: url!) //make sure your image in this url does exist, otherwise unwrap in a if let check/try-catch
cell.thumbnail.image = UIImage(data: data!)
return cell
}
// Can't override
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
// Override works
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return searchResults.count
}
override func viewDidLoad() {
super.viewDidLoad()
}
func updateSearchResults(for searchController: UISearchController) {
// TODO
}
func searchBarIsEmpty() -> Bool {
// Returns true if the text is empty or nil
return searchController.searchBar.text?.isEmpty ?? true
}
}
即使VideoSearchController从继承的UITableViewController,它不会让我重写的cellForRowAtIndexPath或numberOfSectionsInTableView因为这些方法不存在于超类中。但是,它让我重写numberOfRowsInSection。
为什么会发生这种情况,我该如何解决?
您试图重写旧斯威夫特2 API。 – rmaddy