ios - 不能在不可变值部分使用可变成员是一个 let 常量 (swift3)

标签 ios swift xcode swift3

我找不到这段代码的错误

我有以下关于 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/

相关文章:

ios - 如何多次使用 UIPickerView 和 TextField ?

ios - xcode、 Storyboard、操作顺序

ios - Base64 解码 NSString 的异常结果

ios - SafeArea 向后兼容性

swift - Swift 属性的多个 Getter?

ios - Jenkins |椰子类 | swift |错误 : no such module 'RealmSwift'

objective-c - 在 Objective-C 中创建和使用枚举

iphone - UIAlertView 渲染错误

ios - 如何从 UITableView 部分 Swift 3 中删除重复项

ios - 如果设备位于 table 或其他直表面上,如何隐藏 ImageView(横向)?