问题标签 [didset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
608 浏览

arrays - Swift 属性观察者:如果通过追加新数组来修改数组,为什么不对数组属性调用 didSet?

我有一个字符串数组,我还希望创建这个数组的本地化副本(同时保持原始数组不变)。

有很多方法可以做到这一点,但我想当非本地化数组的内容被修改时,我可能会使用属性观察器来设置本地化数组的内容。

我这样创建了一个测试属性观察器:

有趣的是,如果我一次修改一个元素的 cardThemeNames 数组,那么观察者的 didSet 方法就会如预期的那样被调用,即:

但是,如果我通过附加另一个数组来修改数组,则不会调用 disSet,即:

或者:

谁能解释为什么会这样并确认属性观察者是否通常只在修改集合的一个元素时才起作用?

谢谢。

0 投票
3 回答
302 浏览

swift - 结构不在新对象上调用属性观察者

在这段代码中,我想在property observers创建新对象时调用。我如何实现这一目标?

这是我到目前为止所拥有的:

0 投票
1 回答
289 浏览

php - 如何在执行函数之前等待 Swift 中的变量?(迅速)

下面是我的代码。我想要我的 Poststring 中的纬度和经度值。但是当他执行后字符串时,我的值仍然为零,因为 swift 还没有更新位置。那么如何在 poststring 获取值之前等待纬度和经度呢?我听说过一些 didset 但我不知道如何使用它以及我必须在哪里使用它。

谢谢你!

0 投票
1 回答
625 浏览

javascript - Javascript中的didSet:更改变量时调用函数

是否有等价于didSetfrom Swiftin Javascript?Basicall 在变量更改时自动调用函数。这样做的目的是不必每次都调用一个函数,如下所示:

我可以做

这是一个微不足道的示例,但对于我的用例而言,每次更改每个子属性时,这将为我节省大量时间/函数调用。

0 投票
3 回答
787 浏览

arrays - 为什么我不能在其 willSet 事件中从数组中删除元素?

逻辑是在数组具有指定数量的元素时清除它。我可以将检查放在 Array 之外,但我试图在 Array 的 willSet 事件中查看是否执行此操作。结果是 Array 中的元素保持静止。

这是代码

MyArr 预计只有一个元素,而实际结果是四个。

0 投票
0 回答
99 浏览

ios - 在 didset 之后对象值不会改变

我正在使用一些可可豆荚框架来制作 UICollectionView。我能够为每个单元格和设置视图获取正确的数据。

我想拥有不一样的ani

动画结束点应该和dataSource的值有关。问题是我不能如愿使用didSet值。我添加的子视图的框架是(0,0,0,0),对象的值保持与didSet之外的初始值相同。我无法访问 setupView 函数中的数据源值。

预期效果是红色条将从左侧移动到右侧位置:

它只是打印 (290, 100, 300, 10),这不是 didSet 中的值。

0 投票
2 回答
787 浏览

swift - 如何使用 didSet 更新 UIButton 的 .setTitle?

我正在使用个人资料注册视图控制器,当用户从 UIPickerController 选择城市时,我想更新我的 UIButton 的标题。用户选择城市后,按钮的标题不会更新。

我尝试使用 DispatchQueue.main.async 并且无法正常工作我试图在关闭我展示城市选择器的视图后更新 didSet。当我运行我的代码时,该值给出了正确的标题,但没有从我的视图中更新和重新加载数据。

第一个视图

第二视图(选择器呈现)

我的控制台在前后打印 currentTitle。这是控制台:

这是用户从选择器中选择城市后的当前 Optional("City")

这是在用户选择城市 Optional("Orland") 之后

0 投票
3 回答
169 浏览

ios - 我正在尝试将 UICollectionView 项中的值传递给 Swift 4 中的 UIButton

我有一个UICollectionViewCell. 此 Cell 注册在另一个 UICollectionViewCell 中,而后者又注册在viewDidLoad一个UIViewController被调用的FilterCollectionViewController. 选择第一个单元格时,应将字符串类型的值传递给a UIButton。这个 UIButton 位于FilterCollectionViewController

FilterCollectionViewController我做了一个变量叫做colorName

在同一个班级里有一个UIButton

FilterCollectionViewController我声明一个UICollectionView. 在这个 collectionView 中有一个 "second" UICollectionView,它具有以下功能:

单击第二个单元格时,我可以从(在 main 中)UICollectionView打印 colorName 值。但是,我希望将其传递给. 单击此 UIButton 时,应进一步处理此字符串。然而该方法导致didSetFilterCollectionViewControllerUIButtonprintnil

0 投票
1 回答
159 浏览

ios - 使用 didSet 在 UITableViewCell 中向 UIButton 添加目标

我正在尝试重构我的代码,当点击按钮时,我似乎无法从 SearchController 激活 handleFavoriteStar() 操作。我正在关注 LBTA 的重构视频:https ://youtu.be/F3snOdQ5Qyo

公式单元格:

搜索控制器:

0 投票
1 回答
103 浏览

arrays - didSet 没有在每个突变上都被调用?

我有一个变量,我想在你设置和变异时有一个监听器,而 didSet 似乎是完美的候选者。但是,在我对它的初始测试中,第一个附加触发了 do set 并且(在我的示例中)JS 加载到我的 webview 中,但是我从来没有看到第二个附加在 didSet 上命中了我的断点,并且 JS 没有运行,因为它一定没有加载。会发生什么?

在另一个班级:

只有 ABC 触发了 didSet。任何想法为什么一个突变在做而另一个不是?