问题标签 [property-observer]

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 投票
1 回答
22 浏览

swift - 在 Swift 中从 JSON 加载数据时,在 struct 中自动将数据从数组变量加载到字典变量

我想知道当在 Swift 中从 JSON 加载数据时,是否可以在 struct 中自动将数据从数组变量加载到字典变量?

假设我有如下数据

我有这样的结构

这可能吗?我尝试使用 {set get} 或者我应该在 Val 数组上使用 didSet 观察者并提供字典值?

谢谢

0 投票
3 回答
354 浏览

ios - 设置两个变量后如何调用方法

我正在使用 iOS Swift,并且我试图了解如何method在请求完成后设置两个变量的值(非空值)后执行。

在阅读了一些文档之后,我发现了一些有趣的概念。第一个是didSet,它作为observer.

didSet如果我只需要一个变量,我可以使用此方法调用该方法

设置

不过,我还需要等待第二个myVar2,所以它不起作用。

我还发现DispatchQueue了,我可以在调用该方法之前使用它等待一秒钟(我正在使用的请求非常快)

调度队列

但我认为这个解决方案效率不高。

无论如何将这两个变量或请求组合起来,以便在完成设置值后调用方法?

更新 我试图复制大卫的答案,我认为这是正确的,但我得到以下错误\.

在没有更多上下文的情况下,表达式的类型是模棱两可的

我在这里复制我当前的代码

变量是单独设置的,每个变量都是根据自己的要求设置的。

0 投票
2 回答
210 浏览

ios - 属性观察者和属性包装器之间的主要区别是什么?

属性观察者和属性包装器之间的主要区别是什么?它们似乎非常相似,因为它们管理属性的存储方式。我唯一能想到的是您可以重用属性包装器,因为在管理属性存储方式的代码和定义属性的代码之间存在一层分离。

属性包装器

物业观察员

上面两种情况几乎完成了相同的事情,就是将属性设置为等于或小于 12。

0 投票
1 回答
41 浏览

swift - 在 willSet 观察者中计算后未更新结构中的属性

如果我的问题很愚蠢,请提前抱歉,我目前正在学习财产观察员,并且我已经从一个很棒的在线快速教程中获得了一个示例,以确定代码是否有效,我正确地假设它是并决定实现它在 Swift 游乐场。我不明白为什么尽管 if 语句评估为 true,但isMillionaire属性仍然为 false。

0 投票
1 回答
162 浏览

ios - 如何在 MVC 中构建模型 - swift

我很困惑,在 MVCMVC

模型不应该与 交谈view,但到目前为止,我一直看到以这种方式工作的项目:

1-Controller从数据库创建模型对象,将其存储在某处(数组、字典、变量)

2-相应Controller地更新view,即使在 collectionViews 中使用委托方法 fi。

我的问题是:模型是否需要完美地表示视图将要显示的内容?这样我就可以将模型对象传递给视图并根据它设置视图?

到目前为止,我一直在执行此过程,但我想知道这种方法是否有问题。

要清楚的示例,在controller

view使用中property observer

0 投票
1 回答
105 浏览

swift - 如何观察继承对象属性的变化并存储以前的值?

设置:

我正在子类化SKSpriteNode()以创建一个名为SubNode().

SKSPriteNode() 类有一个称为physicsBody存储SKPhysicsBody()对象的属性。SKPhysicsBody有一个叫做“速度”的属性,它是CGVector()

目标:

在我的子类中,我希望有一个始终保留前一个的变量CGVector()。例如,只要我打电话subNode.physicsBody?.velocity = CGVector(dx: 10, dy: 10)的意思。subNode.previousVelocity应设置为以前的subNode.physicsBody?.velocity值。

问题

如果velocity只是超类的继承属性,我可以只是override该属性并附加一个didSet观察者。但是,因为velocity它是的一个属性,SKPhysicsBody()并且 SKPhysicsBody()当它的一个属性发生变化时,对象不会改变,didSet所以不会被触发,我无法听到它的变化。

如果我的解释不清楚,请要求更多澄清。

我的子类:

从 SubNode() 子类创建对象 subNode,设置物理体,然后设置速度"

0 投票
2 回答
230 浏览

swift - Swift 中的属性观察者

知道如何从 didSet 中返回 UIView 吗?

我有一个返回 UIView 的方法。我需要观察一个 Int 并随着 Int 的变化返回一个 UIView。我有一个 didSet 观察者集,但是,在尝试返回 UIView 时出现错误。

感谢任何帮助!谢谢。

0 投票
1 回答
29 浏览

swift - 每次调用 func 时增加属性观察者的宽度

在我下面的快速代码中,当我使用 propertyObserver 添加另一个框时,滚动视图是固定的,我无法增加滚动视图。每次将新项目添加到计数器时,我希望滚动条的大小增加。我在下面添加了一个 gif 来显示问题所在。您可以看到新空间没有添加到滚动视图中。

在此处输入图像描述

0 投票
0 回答
19 浏览

swift - 向属性观察器中的对象添加平移手势

现在我的代码结合了属性观察器和堆栈视图。我现在要做的是为您在下面的 gif 中看到的每个蓝色对象添加一个平移手势。您可以在下面的 gif 中看到下面 gif 中的蓝色对象是什么。对象是蓝色按钮。我尝试将平移手势添加到 t_button 但我不能这样做,因为它超出了范围并且将其移出它所在的方法时。它会影响按钮的显示方式。我只想让蓝色物体移动。

在此处输入图像描述

0 投票
0 回答
62 浏览

swiftui - 为什么在 SwiftUI 中的 TextField 绑定上调用了两次 didSet?

我有一个非常基本的视图,仅显示TextField

看法

TextField文本绑定到string视图模型上的属性:

视图模型

我添加了一个didSet属性观察器,以便在字符串更改时执行自定义操作。对于这个简单的示例,我只在控制台上打印一个字符串。

观察

当我运行此代码并将字符串“123”输入文本字段时,这是我得到的输出:

问题:

为什么?
为什么didSet我输入的每个字符都会调用两次闭包?(我希望每个角色都会调用一次。)

代码有什么问题还是这种预期的行为以某种方式?