- 此问题在此处已有答案**:
Class 'ViewController' has no initializers in swift(8个答案)
1小时前关闭.
import UIKit
import CoreData
class TableViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var titleArray = [String]()
var idArray = [UUID()]
var chosenTitle = ""
var chosenTitleID : UUID
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.topItem?.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.add, target: self, action: #selector(addButtonClicked))
tableView.delegate = self
tableView.dataSource = self
getData()
}
func getData() {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Places")
request.returnsObjectsAsFaults = false
do {
let results = try context.fetch(request)
if results.count > 0 {
self.titleArray.removeAll(keepingCapacity: false)
self.idArray.removeAll(keepingCapacity: false)
for result in results as! [NSManagedObject] {
if let title = result.value(forKey: "title") as? String {
self.titleArray.append(title)
}
if let id = result.value(forKey: "id") as? UUID {
self.idArray.append(id)
}
tableView.reloadData()
}
}
} catch {
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = titleArray[indexPath.row]
return cell
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return titleArray.count
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
chosenTitle = titleArray[indexPath.row]
chosenTitleID = idArray[indexPath.row]
performSegue(withIdentifier: "toDetailsVC", sender: nil)
}
我有一个Swift类的问题。我有一个UITableViewController类的Swift文件。我有"类'TableViewController'没有初始化器"的问题。我没有找到任何东西,但代码说TableViewController没有初始化器。我不明白这个问题。我有14.2版本。
感谢您的回复。
1条答案
按热度按时间qfe3c7zg1#
您可以将chosenTitleID属性设置为可选(变量chosenTitleID:UUID?),或者为chosenTitleID提供默认值,因为TableViewController类包含非可选属性。