gpt4 book ai didi

swift - 如何将 Storyboard TableView 连接到我创建的类?

转载 作者:行者123 更新时间:2023-11-30 10:31:44 24 4
gpt4 key购买 nike

我目前正在 Swift 5 中使用 Xcode 11.2.1 为 iOS 开发我的第一个应用程序。在 Main.storyboard 文件中,我创建了一个选项卡栏 Controller ,它也是一个初始 View Controller 。启动应用程序后立即显示的选项卡包含表格 View 。我想更新上述 TableView 中的单元格,为此我创建了一个类 - DBHandler.swift。

import Foundation
import UIKit
import SQLite

class DBHandler{
let path = Bundle.main.path(forResource: "db1", ofType: "sql")
lazy var db = try! Connection(path!, readonly: true)

func getSessionTitles(){
let data = Table("data")
let id = Expression<String>("id")
for one in try! db.prepare(data) {
print("id: \(one[id])")
}
}
}

我遇到的问题是,每当我尝试将 TableView 拖到我的 DBHandler 类中时,应用程序都会构建,然后崩溃并显示 Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x7ff4af6065c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key TableView.'错误。在 Storyboard 中,按住 Control 键单击“ View ”后,“Outlets”部分会出现一个黄色三角形,显示 UIView does not have an outlet named TableView 。 UIView 是显示在 TableView 的身份检查器的“自定义类”部分中的类,但是我的自定义类没有显示在那里。

如何将 TableView 连接到 DBHandler 类,以便可以将一些数据插入到 TableView 中?

最佳答案

试试这个,

Class DBHandler: UITableViewController{
//your code here
let path = Bundle.main.path(forResource: "db1", ofType: "sql")
lazy var db = try! Connection(path!, readonly: true)

func getSessionTitles(){
let data = Table("data")
let id = Expression<String>("id")
//for one in try! db.prepare(data) {
//print("id: \(one[id])")
//}
}
}

确保在 Storyboard身份检查器中,您的 TableView 符合您的自定义类 DBHandler。

编辑-

您不应该在提供的代码中使用 try 语句。 TableView Controller 的类不应尝试从数据库中获取。编写一个单独执行此操作的函数

关于swift - 如何将 Storyboard TableView 连接到我创建的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59060215/

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