首页 > 解决方案 > 是否可以在不激活其 DidSet 属性的情况下使数组为空?

问题描述

目前我有一个数组,它在设置时激活另一个函数:

   var updatedBeaconDetailsArray = [BeaconDataDetails]() { didSet {
        self.updateBeaconData(beacon: self.updatedBeaconDetailsArray)
        }
    }

我正在尝试通过激活 didSet 来清除数组,因为 didSet 函数也与应用程序的其他部分相关联,从而导致奇怪的行为。

到目前为止,我已经尝试过:

self.updatedBeaconDetailsArray = []
self.updatedBeaconDetailsArray.removeAll()

但他们都仍然激活了 didSet,有什么想法吗?

标签: arraysswiftdidset

解决方案


如果您检查 didSet 中的数组是否为空怎么办?就像是:

var updatedBeaconDetailsArray = [BeaconDataDetails]() {
    didSet {
        if !updatedBeaconDetailsArray.isEmpty {
            self.updateBeaconData(beacon: self.updatedBeaconDetailsArray)
        }
    }
}

推荐阅读