arrays - 是否可以在不激活其 DidSet 属性的情况下使数组为空?
问题描述
目前我有一个数组,它在设置时激活另一个函数:
var updatedBeaconDetailsArray = [BeaconDataDetails]() { didSet {
self.updateBeaconData(beacon: self.updatedBeaconDetailsArray)
}
}
我正在尝试通过激活 didSet 来清除数组,因为 didSet 函数也与应用程序的其他部分相关联,从而导致奇怪的行为。
到目前为止,我已经尝试过:
self.updatedBeaconDetailsArray = []
self.updatedBeaconDetailsArray.removeAll()
但他们都仍然激活了 didSet,有什么想法吗?
解决方案
如果您检查 didSet 中的数组是否为空怎么办?就像是:
var updatedBeaconDetailsArray = [BeaconDataDetails]() {
didSet {
if !updatedBeaconDetailsArray.isEmpty {
self.updateBeaconData(beacon: self.updatedBeaconDetailsArray)
}
}
}
推荐阅读
- list - 检查元组列表中的所有第一个元素是否满足条件
- python - 事务处理和构建事务处理有什么区别?
- tinymce - 如果包含 JavaScript 代码,如何防止 TinyMCE 从“a”标签中删除 href 属性?
- c - 在预处理器指令中使用除 # 之外的另一个字符
- python - 提高视频流畅度
- javascript - 将谷歌图表中特定饼图(最后一个索引)的颜色定义为红色
- html - 如何在 col-lg-8 中固定元素按钮?
- git - NPM 编译因不存在的错误而失败
- gnuplot - gnuplot中符号和文本之间的图例中的空格
- c# - 可以在运行时更新带有 XML 源的 DisplayNameAttribute 扩展吗?