gpt4 book ai didi

ios - 不能在 viewDidLoad() 之外使用 sqlite (swift) 命令

转载 作者:行者123 更新时间:2023-11-28 13:14:04 25 4
gpt4 key购买 nike

我正在使用 stephencelis 的 SQLite 框架

我遇到的问题是这些命令只能在 viewDidLoad() 中使用。但是我必须在 viewDidLoad 之外的函数中使用定义的变量(例如 var carlist)。

我的逻辑问题在哪里?

我的代码被截断了:

    override func viewDidLoad() {
super.viewDidLoad()
let db = Database("/Users/**/Desktop/NEW/car/car.sqlite")
let cars = db["cars"]
let car_id = Expression<Int64>("car_id")
let car_model = Expression<String?>("car_model")

for car_list in cars {
println("car_model: \(car_list[car_model])")
var carlist[car_list[car_model]] // array
}
}

错误,如果我将“let db”之后的行移到外面:“ViewController.Type”没有名为“db”的成员

最佳答案

您的问题是,您在 viewDidLoad 方法中声明了变量,而 Swift 看不到该变量。您必须在这样的方法之外声明它:

class YourClass{
//The DB-declaration
let db = Database("/Users/**/Desktop/NEW/car/car.sqlite")

override func viewDidLoad() {
super.viewDidLoad()

let cars = db["cars"]
let car_id = Expression<Int64>("car_id")
let car_model = Expression<String?>("car_model")

for car_list in cars {
println("car_model: \(car_list[car_model])")
var carlist[car_list[car_model]] // array
}
}

}

如您所见,我已经在任何函数之外声明了变量。这样您就可以从类(class)内的任何地方访问。有不同种类的变量。你可以这样看: enter image description here

关于ios - 不能在 viewDidLoad() 之外使用 sqlite (swift) 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29974452/

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