我无法使用此代码找到错误
我对sections.append(eventMois)
有以下错误消息不能在不可变值部分使用变异成员是一个让常量
感谢您的帮助
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
}
}
答案 0 :(得分:1)
这是您的问题
if let sections = sections {
sections.append(eventMois)
} else {
sections = eventMois
}
如果让sections
因错误消息而无法更改,那么你需要一个简单的if!= nil检查
替换为
if sections != nil {
sections.append(eventMois)
} else {
sections = eventMois
}
或像这样的后卫
guard sections != nil else{
sections = eventMois
return
}
sections.append(eventMois)
希望这有帮助
答案 1 :(得分:1)
最有效的解决方案是将数组声明为非可选的空数组
var sections = [Section]()
然后不需要整个if - let
表达式,您只需编写
sections.append(eventMois)
或
sections = eventMois
在表达式中考虑
if let sections = sections {
sections.append(eventMois)
第二行中的 sections
是可选的绑定局部变量,不声明的数组导致错误,因为局部变量是不可变的。