首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeAtIndex与didSet

removeAtIndex与didSet
EN

Stack Overflow用户
提问于 2015-05-02 19:22:16
回答 2查看 553关注 0票数 6

我们有一个具有数组属性的类,该类具有一个didSet观察者。但是,当我们在这个数组上调用removeAtIndex时,似乎调用了didSet观察者。我们能阻止这一切发生吗?

代码语言:javascript
复制
var items: [String] = []
{
    didSet
    {
        println(self.items.count)
    }
}
...
func removeIndex(index: Int)
{
    self.items.removeAtIndex(index)
    // now didSet is called, but we don't want that
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-02 20:16:00

didSet方法将被自动调用,如果您不想执行didSet方法中的代码行,下面的技巧可能适用于您。

  1. Bool变量,在willSet观察者方法中使其变为true,在didSet方法中检查这个bool变量的状态,如果为true,忽略,然后立即将其变为false。
  2. 在didSet观察者方法中,您将获得数组的oldValue并找到计数,并与当前计数进行比较。
票数 2
EN

Stack Overflow用户

发布于 2015-07-07 00:08:04

非常出乎意料。

对于我的情况,我能够维护一个索引变量,而不是从数组中提取项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30006501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档