问题标签 [equatable]

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 回答
197 浏览

swift - 斯威夫特:检查图片网址是否已更改

我有一个视图,它显示来自 collectionView 的选定对象(产品),并让用户可以更改该产品。在返回 collectionViewController 之前,我想检查是否有任何更改,并询问用户是否要保存。

Product 包含 imageView 的 url?.absoluteString。我与 Equatable 进行比较,

最大的问题是,当我创建 absolutString 时,图像会上传到 Firebase,这会花费不必要的时间。如果我不想保存更改,为时已晚,因为我已经更改了 firebase 中的图像。

我不知道是否有一种方法可以检查 imageView 中的图像是否已被篡改,而无需对 firebase 数据库或存储进行任何调用

0 投票
1 回答
353 浏览

ios - 在“过滤器”之后或通过查找“包含”的“firstIndex”从数组中快速删除项目

我有两个Books数组

在哪里

tempArray如果title匹配,我想从中删除一本书。我可以像这样过滤tempArray搜索"Some title"

我正在尝试删除

但得到这个Cannot invoke 'contains' with an argument list of type '(String)'。修复此错误的建议?或者,可以在过滤时删除元素吗?

0 投票
1 回答
169 浏览

swift - 未定义属性列表的平等协议实现?

我有一个带有Equatable协议实现的类。我知道如果所有内部变量都相等,则此类的 2 个对象是相等的。对象可能包含数组。目前我对每个不灵活的值对比较进行硬编码。

如果有办法通过遍历属性列表来实现这种比较?例如Mirror(反射)?

0 投票
0 回答
101 浏览

swift - 从扩展 Equatable 调用视图控制器中的函数

我有一个从视图控制器调用的共享函数,它是 Equatable 类型的扩展。我可以从共享功能中调用视图控制器功能吗?我在共享函数中有一个完成处理程序,所以最终我会将我的函数调用放在那里。

我注意到我正在使用 topViewController 来呈现 UIActivityController。我可以用那个吗?在 topViewController 之后按 ESC 时找不到我想要的功能:

更新:我通过共享函数传递了视图控制器的引用,它可以工作。不确定这是否是最好的方法。

0 投票
2 回答
7620 浏览

flutter - Equatable 的子类将什么传递给超级(Equatable 类)?

嗨,我是 Flutter 中的 bloc 新手,我正在尝试在 flutter_bloc 的文档中了解块计时器,我会知道这个构造函数类是什么意思

0 投票
1 回答
182 浏览

ios - 符合 Equatable for Diffing 的协议

我这里有一个小型聊天应用程序。

我可以有两种类型的消息: - 文本 - 视频

我在解码 JSON 时使用多态性,如下所示:

我也在使用 MVVM 方法,如下所示:

为了能够使用DiffingDiffer这样的库,ChatViewModel应该符合Equatable协议。

这里的问题是case let (.loaded(l), .loaded(r)): return l == r,Message作为协议,不符合Equatable.

使其符合Equatable 喜欢

产生错误Protocol 'Message' can only be used as a generic constraint because it has Self or associated type requirementsMessageWrapper

有什么想法或建议有一个干净的方法来解决这个问题吗?我看到了一些关于Type Erasure但经过一些测试后我不确定它是否真的解决了问题。

0 投票
1 回答
350 浏览

swift - 加载数据后不符合 Equatable 的 Swift 对象

Equatable从 plist 加载后,我遇到的对象似乎不符合协议的问题。一些背景知识:我有一个对象TransmitterList类型,它包含一个 Transmitters 类型的数组。在第一次启动时,一切正常,我可以通过调用删除项目

此方法在第一次运行时完美运行,问题出现在应用程序数据已保存并在终止应用程序后重新加载之后。所有保存和加载都是使用Codable协议和 Plist 编码器和解码器完成的。发射器列表中的发射器仍然存在,但是当尝试删除发射器时,调用firstIndex(of:)返回nil。其他依赖Equatable协议的方法也不能正常工作。似乎保存的发射器不再符合Equatable. 但是,在重新启动后添加新发射器时,我能够成功删除任何新添加的发射器。

我能够通过比较一些发射器属性并以这种方式删除它们来创建一个解决方法,但它似乎不是很健壮。真的想了解发射机不再符合的根本原因Equatable

任何帮助表示赞赏,谢谢!

更新了保存和加载代码。

这是我正在使用的 dataModel 对象,它只是保存了一个 TransmitterLists 数组。Transmitter 类中没有自定义编码或解码,它只是符合,Codable没有任何额外的方法。

添加发送器类。任何其他类型也符合Codable但仅通过在定义中声明。也许在确保类型正确符合方面还有更多工作要做?

0 投票
1 回答
61 浏览

arrays - 结构内的结构 Equatable 计数重复项 Swift

我找到的答案是一级结构。在我的代码中,我想找出结构的结构内部有多少相同的日期。我以前从未使用过 equatable,所以我不确定如何在 struct 中使用 struct 来实现它。

我正在使用 Charts pod,并且该数组chartMetricItemSets包含多天的不同读数。例如:["name": sugar, [["date": "Oct 10", "value": 120], ["date": "Oct 10", "value": 121], ["date": "Oct 11", "value": 120], ["date": "Oct 13", "value": 120], ["date": "Oct 13", "value": 121]]。将xAxisDates["Oct 10", "Oct 11", "Oct 13"]

x 是日期,y 是相同日期的总和

目标:chartDataEntries 应该附加[x:0(10/10), y:241], [x:1(10/11), y:120], [x:2(10/13), y: 241]

谢谢!

0 投票
1 回答
673 浏览

testing - 使用具有列表类型参数的 dart 类,如何使其具有等价性

我正在使用新的库 bloc_test 进行颤振,我实现了以下测试

这是 ReservationsLoadSuccess 的实现

其中 ReservationState 扩展 Equatable 现在,在运行测试时,您会收到以下错误

基本上说实际列表中位置 2 的状态 ReservationsLoadSuccess 不等于预期列表中的对等点。

我尝试在 ReservationsLoadSuccess 类中覆盖 == 运算符,如下所示

但这似乎不起作用,并且运行测试仍然输出相同的错误。我让它工作的唯一方法是让 props 方法返回一个空列表或添加任何其他虚拟变量并将其传递给 props 列表。

有什么方法可以使类在列表参数方面相等吗?

0 投票
2 回答
1142 浏览

flutter - 将属性传递给 Equatable 的超级构造函数

我对 Flutter 和 Dart 还很陌生,我在理解如何重写扩展 Equatable 更新版本的类时遇到了一些麻烦。

这适用于 Equatable 0.4.0:

但是,更新到 Equatable 1.0.2 会在以下位置引发错误super(properties)

位置参数太多:预期为 0,但找到了 1。

尝试删除额外的参数。

我不明白如何properties使用 Equatable 1.0.2 传递给超级构造函数