swift 类“TableViewController”没有初始值设定项[重复]

8zzbczxx  于 2023-01-19  发布在  Swift
关注(0)|答案(1)|浏览(191)
    • 此问题在此处已有答案**:

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版本。
感谢您的回复。

qfe3c7zg

qfe3c7zg1#

您可以将chosenTitleID属性设置为可选(变量chosenTitleID:UUID?),或者为chosenTitleID提供默认值,因为TableViewController类包含非可选属性。

相关问题