我使用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
}
}
}
如您所见,我在任何函数之外声明了变量。这样你就可以从你班里的任何地方进入。有不同种类的变量。你可以这样看: