我找不到这段代码的错误
我有以下关于 sections.append(eventMois) 的错误消息
不能在不可变值部分使用可变成员是一个 let 常量
谢谢你的帮助
class DashboardViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, ExpandableHeaderViewDelegate {
var sections : [Section]?
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")
guard let eventMois = defaults.array(forKey: "event_mois") as? [Section] else {return}
if let sections = sections {
sections.append(eventMois)
} else {
sections = eventMois
}
}
最佳答案
最有效的解决方案是将数组声明为非可选空数组
var sections = [Section]()
那么整个if - let
表达式就不需要了,你可以简单的写
sections.append(eventMois)
或
sections = eventMois
考虑在表达式中
if let sections = sections {
sections.append(eventMois)
第二行的 sections
是可选的绑定(bind)局部变量,不是导致错误的声明数组,因为局部变量是不可变的。
关于ios - 不能在不可变值部分使用可变成员是一个 let 常量 (swift3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45775054/