问题标签 [identifiable]

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

swift - 如何使我的结构可识别?它有一个唯一的数字 uid 字段

Github 的一个简单项目中,我正在尝试下载 JSON 对象列表:

这很好用,下一步我想将它显示在 SwiftUI 列表中,从而添加Identifiable到结构中。

不幸的是,这会产生编译错误Type 'Top' does not conform to protocol 'Identifiable'

错误 1

根据我的后端应用程序的设计,该字段uid是一个唯一编号。

所以我试图通过将其类型从更改为来修复编译错误IntObjectIdentifier但 Swift 编译器仍然对新错误不满意Type 'Top' does not conform to protocol 'Decodable'

错误 2

这里发生了什么,编译器现在是否可能缺少uid解码 JSON 的字段?(它怎么可能知道传入的服务器数据有这样一个字段?)

0 投票
0 回答
31 浏览

swift - 迅速。如何在 XCODE 中正确编写数据结构

我要求提供有关如何正确编写结构和数据模型的提示。我想要来自解码器的一段数据。是否有可能做到这一点?

重要的!我被标记为“???” 一个不知道写什么的地方。

在屏幕上,我更详细地绘制了我想要得到的东西。 在此处输入图像描述

0 投票
1 回答
86 浏览

swift - 如何通过 swiftui 中的 ID 引用它来覆盖可识别的对象?

我已经简化了我的代码,以便更容易看到我正在尝试做什么,我正在构建一个评级提要,这些评级来自我“关注”的任何人的 firebase 文档

我想做的就是每当firebase说我的一条评论有新更新时,改变那个可识别的,而不是必须重新加载我关注的每个人的每条评论。

这是我的看法:

这是我的 FeedViewModel 函数:

我想要的只是让每个评分的“喜欢”实时更新,并在有人喜欢评分时更新。这看起来很简单,但我对 swiftui 比较陌生,所以我可能完全不知道我是如何做到这一点的。任何帮助是极大的赞赏!

0 投票
2 回答
602 浏览

ios - 在 SwiftUI 中将数组与 Identifiable 一致

我有一个关于符合Identifiablein的小问题SwiftUI

在某些情况下,我们需要有一个给定的类型 MyType 才能符合Identifiable

但我面临的情况是,我需要有 [MyType](MyType 的数组)才能符合Identifiable.

我的 MyType 已经符合Identifiable. 我应该怎么做才能使 [MyType] 符合Identifiable

0 投票
1 回答
57 浏览

swift - 面向协议的 Swift 编程 - 可识别

假设我想在 swift 中使用面向协议的编程来建模一个幻想游戏。下面的代码产生以下错误:

Protocol 'Character' 只能用作通用约束,因为它具有 Self 或关联的类型要求

这里有什么问题?怎么做才对?

0 投票
2 回答
39 浏览

swift - 协议类型的集合 - 面向协议的编程

我想要一个协议类型的集合:在这种情况下,我想要一个变量“ party ”是一个 GameCharacter 类型的数组,这样我就可以把所有符合 GameCharacter 的东西放在里面。

下面的代码产生以下错误:

协议“GameCharacter”只能用作通用约束,因为它具有 Self 或关联的类型要求

这里有什么问题?怎么做才对?

0 投票
1 回答
265 浏览

swift - 使核心数据实体(具有现有的 `id` 属性)符合 Identifiable?

我有一个核心数据实体,它的属性名为id

当我使用 SwiftUI 时,我正在添加对 的支持Identifiable,因此 Core Data 实体现在符合它:

当我尝试编译时,例如当我尝试在谓词中使用 id 时收到此错误:

错误:

Ambiguous reference to member 'id'

如何使Car实体符合 Identifiable 同时保持其现有属性id

0 投票
2 回答
147 浏览

dynamic - SwiftUI:如何管理视图的动态行/列?

我发现我的第一个 SwiftUI 挑战是一个棘手的挑战。给定一组扑克牌,以一种允许用户在有效利用空间的同时查看完整牌组的方式显示它们。这是一个简化的示例:

在此处输入图像描述

在这种情况下,按照-View的顺序呈现了52 张卡片。它们被动态打包到父视图中,以便它们之间有足够的间距以使数字可见。0152

问题

如果我们改变窗口的形状,打包算法会将它们(正确)打包成不同数量的行和列。但是,当行数/列数发生变化时,卡片 Views 会出现乱序(有些是重复的):

在此处输入图像描述

在上图中,请注意第一行是正确的 ( 01- 26),但第二行从 开始12并在 结束52。我希望他是因为第二行最初包含12-22并且这些视图没有更新。

附加标准:卡的数量和这些卡的顺序可以在运行时改变。此外,此应用程序必须能够在 Mac 上运行,其中窗口大小可以动态调整为任何形状(在合理范围内)。

我知道在使用ForEach索引时,必须使用常量,但我必须遍历一系列行和列,每个行和列都可以更改。我试过添加id: \.self,但这并没有解决问题。我最终遍历了最大可能的行/列数(以保持循环不变)并简单地跳过了我不想要的索引。这显然是错误的。

另一种选择是使用Identifiable结构数组。我试过这个,但无法弄清楚如何组织数据流。此外,由于打包取决于父代的大小,View因此打包似乎必须在父代内部完成。父级如何生成满足 SwiftUI 确定性要求所需的数据?

我愿意做这项工作来完成这项工作,任何理解我应该如何进行的帮助将不胜感激。

下面的代码是一个完整的、简化的版本。对不起,如果它仍然有点大。我猜这个问题围绕着两个ForEach循环的使用(诚然,这有点笨拙。)

0 投票
1 回答
65 浏览

swift - SwiftUI - 将 ForEach 与不符合可识别/可散列的绑定数组一起使用

我有一个可编码的对象,如下所示:

以下是从 API 调用时的事件响应示例:

在 SwiftUI 中,我试图显示这些列表。所以我有一个名为existingIncidents的这些IncidentResponse对象的数组,然后是以下内容:

但是,我无法使用现有事件,因为它不符合 Identifiable 或 Hashable(所以我不能使用 id: /.self 解决方法)...

我怎样才能解决这个问题?

我尝试将 UUID 添加到 IncidentResponse 中,如下所示:

但是,这会阻止对象从 API 正确解码。

0 投票
3 回答
279 浏览

foreach - Swiftui Identifiable Foreach 循环能否仅选择前 5 个项目

你好我有一个项目只需要在超过 30 个项目的循环中显示前 5 个项目,下面是我的代码

我尝试使用这种方法,但是在我滚动过去第五项后,xcode 崩溃了

谢谢