问题标签 [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.
swift - 使用模型对象 didSet 设置布尔值
我正在努力弄清楚如何使用模型对象的 didSet 正确设置布尔值。我的应用程序有一系列可滑动的卡片,有些可以翻转,有些则不能。下面的代码是为创建的每张卡片运行的 CardView。
目前,该代码非常适用于图像和标签——每张卡片根据每张卡片的模型对象加载唯一信息。但是, button 和 isFlippable 属性是我苦苦挣扎的地方。
现在的代码总是加载绿色路径。然而,奇怪的是,即使 cardModel 应该将按钮 isEnabled 设置为 false,它仍然会加载绿色(但按钮不起作用,所以它确实被禁用了......)
我也有当按钮翻转时交替“isBackShowing”然后调用 setupLayout() 的代码——它工作正常。但它在卡的初始设置期间总是加载为假。
swift - 为 outlet 集合设置 didSet
我在出口集合中添加了一些选择器视图,它们应该具有不同的属性,我需要将它们添加到它们的 didset 例如,这里是出口集合
问题是,我不得不说,如果第一个成员dataPickers
做那件事,但我不知道我怎么能在 didset 中这么说。
有人可以帮我吗?太感谢了
swift - UIView 的子类不调用 didSet
我有一个名为 BaseView 的 UIView 子类。在 BaseView 的子类中,我使用一些代码创建了 didSet。在 UIViewController 我初始化 BaseView 的这个子类,他没有调用他的 didSet
基本视图代码:
BaseView 代码的子类:
UIViewController 代码:
arrays - 观察数组任何成员的任何属性的变化
我有一个存储类对象的数组:
当“apples”数组的任何成员的任何属性发生变化时,我想运行一个函数。在调用这个函数时,我需要将属性改变的数组的项作为参数传递。
我想使用didSet
on color 属性,但在这种情况下,当 otherApple 的属性也发生更改时会调用函数。这不是我想要的。我只想在数组成员的属性发生更改时运行该函数。如果它不是成员,则该函数不应运行。
使用didSet
,在任何情况下运行该函数,并在函数开头检查成员资格可能是一个想法,但我觉得这不是一个好方法。
如何使用 Swift 正确实现这一点?
编辑:Apple 的在 Swift 中使用键值观察的指南
swift - SwiftUI 查看属性 willSet 和 didSet 属性观察者不起作用
我有一个带有附加 ViewModel 的 SwiftUI (Beta 5) 视图。我想通过 navigationLink 导航到它并传入一个简单的参数(在这种情况下称为 FSAC)
我使用导航
该视图具有带有 willSet 和 didSet 属性观察器的 FSAC 属性
打印语句永远不会被调用。第一个文本框正确显示参数;第二个是空白的。
我怎样才能让 Property Observers 开火?
更一般地说,是否有一种“正确”的方式来使用 navigationLink 将参数传递给具有 ViewModel 的 View?
arrays - 是否可以在不激活其 DidSet 属性的情况下使数组为空?
目前我有一个数组,它在设置时激活另一个函数:
我正在尝试通过激活 didSet 来清除数组,因为 didSet 函数也与应用程序的其他部分相关联,从而导致奇怪的行为。
到目前为止,我已经尝试过:
但他们都仍然激活了 didSet,有什么想法吗?
swift - cgpoint 的颜色会更改所有行,并且应该只更改新行
我的代码用于类。当函数 dizzy 被调用时,它会改变 uiview 中所有线条的颜色。我想要它做的只是改变调用函数后绘制的线条颜色。它不应该像现在这样改变已经绘制的线条的颜色。
binding - 子视图中的 SwiftUI @Binding 我如何观察父级的更改(又名 didSet)
我想观察子视图中@Binding属性的变化。但是没有调用 didSet/willSet(仅当我从当前视图更改此变量时才调用它,但如果更改是从外部视图,则不执行此处理程序)
我想在什么时候执行一些代码
从父视图更改。
然后我想重新计算 xOffset 状态属性
计算应增加当前 xOffset 值,如:
但我堆在这个地方。
toggle - SwiftUI - 使用切换 - 控制台日志:“无效模式 'kCFRunLoopCommonModes'” - didSet 不起作用
我在使用 SwiftUI 切换时遇到了一个普遍问题。每当我使用它们时,我都会收到此控制台错误:
提供给 CFRunLoopRunSpecific 的无效模式“kCFRunLoopCommonModes” - 中断 _CFRunLoopError_RunCalledWithInvalidMode 以进行调试。此消息每次执行只会出现一次。
除此之外,当我在模拟器中点击切换时,didSet 不会打印任何内容。有谁知道,还是 SwiftUI 错误?
几个月前的 StackOverflow 上的其他相关问题似乎没有找到解决方案。
如果这是一个错误,我想知道切换的解决方法是什么。好像我不是第一个在 iOS 中使用切换的人。;-)
swift - Swift 中的 Array.append() 未调用 didSet
我正在关注SwiftUI 的 100 天,并已达到第 37 天。在使用 UserDefaults 进行永久更改时,我遇到了didSet
.
(我在 iOS 13.4 中使用 Swift 5)
在示例代码中,它写道
didSet
应该在哪里调用.append()
。
但是,在实践中,didSet
除非我将上面的代码更改为
我还在 Playground 中编写了一个小测试(见下文),这表明它.append()
与didSet
这种奇怪的行为真的让我想知道它是如何didSet
工作的。还是这个问题与使用有关@ObservedObject
(示例项目就是这种情况)?
PS:我从Project7下载了汉化版,也有这个问题。