1)记录后,我从数据库中检索值(OK)
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Receive user defaults which we stored when user logged in
let defaults = UserDefaults.standard
let firstname = defaults.string(forKey: "usernameValue")
let lastname = defaults.string(forKey: "nameValue")
let connect_email = defaults.string(forKey: "emailValue")
let event_mois = defaults.array(forKey: "event_mois")
}
2)viewDidLoad()
之后我制作一个数组来提供显示(OK)
var sections = [
Section(genre: " Event du mois",
movies: ["The Incredibles", "The Incredibles"],
expanded: false),
Section(genre: " Top Event",
movies: ["Guardians of the Galaxy", "The Flash", "The Avengers", "The Dark Knight"],
expanded: false),
Section(genre: " Event Fribourg",
movies: ["The Walking Dead", "Insidious", "Conjuring"],
expanded: false)
]
3)我现在想要从我的数据库中检索的event_mois表将它放在var部分中。但是我不能在viewDidLoad
之外使用这个数组,我也不能把var部分放在viewDidload中。
有人能帮助我吗? 谢谢
答案 0 :(得分:1)
您不能在其他方法中使用该数组,因为它将超出范围。 解决方案:将数组定义为属性,这样你就可以在类的任何地方使用它,属性在所有方法之外的类中进行。
class YourClass {
var sections : [Section] = []
override func viewDidLoad() {
super.viewDidLoad()
// your code
}
}
答案 1 :(得分:0)
您只需要将sections
定义为您班级的实例属性,然后就可以在班级的任何地方访问它。
class MyViewController: UIViewController {
var sections: [Section]?
override func viewDidLoad() {
super.viewDidLoad()
// Receive user defaults which we stored when user logged in
let defaults = UserDefaults.standard
let firstname = defaults.string(forKey: "usernameValue")
let lastname = defaults.string(forKey: "nameValue")
let connectEmail = defaults.string(forKey: "emailValue")
guard let eventMois = defaults.array(forKey: "event_mois") as? [Section] else {return}
if let sections = sections {
sections.append(eventMois)
} else {
sections = eventMois
}
}
}
并使用Swift命名约定,它是变量名称的较低值。