问题标签 [swift-dictionary]

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

swift - 使用键和值约束扩展字典

我想扩展字典并将其限制为具有类型值的 NSDate 的特定键类型Array<MyClass>

MyClass 是一个没有子类的 swift 类。

上面的代码返回一个构建错误:

类型“值”限制为非协议类型“数组”

好的,所以它似乎需要被限制到一个特定的协议,但奇怪的是,当我将 Value 限制为:

扩展字典,其中键:NSDate,值:MyClass

编译器不会抱怨并且构建成功。但是 MyClass 不是协议。那么给了什么?

我设法像这样限制它:

但这需要强制转换,因为我需要以整数形式获取 count 属性。

那么为什么我不能将它明确地限制为 [MyClass] 的值类型呢?

0 投票
1 回答
93 浏览

json - 在 Swift 中为 JSON 动态组装复杂的多维字典

我正在尝试动态组装一些复杂的 JSON,如下所示:

也就是说,我有一个Address结构数组,我需要遍历这些结构来组装relationshipsand included。如果这是一本字典,我会更喜欢,但我也可以SwiftyJSON用来组装JSON对象。

当我自己尝试这样做时,我一直遇到编译器模棱两可的问题,所以老实说我不知道​​如何解决这个问题。我来自动态编程语言,所以我对此感到很困惑。

0 投票
3 回答
615 浏览

arrays - Swift 字典数组扩展 sortInPlace

使用 Swift 2.1 我正在尝试创建一个函数,该函数按键 dateKey 的日期值对字典数组进行排序。

我想将此作为 Array 类型的扩展添加,所以我可以使用它来调用它someArray.sortDictionariesByDate(dateKey: String, dateFormatter: NSDateFormatter)

只要将字典键入为 ,这就可以正常工作[String: AnyObject],但是如果我在类型的字典上使用它,[String: String]它就不起作用,因为它无法转换StringAnyObject. 我认为这是因为Stringis a Structnot a Class。我也尝试将元素类型转换为[String: Any],但无论使用类型为[String: AnyObject]或的字典,它都不起作用[String: String]

是否有任何转换可以用来支持具有键类型String和任何值类型(StringAnyObject)的字典,或者可以添加到扩展中以避免完全转换的 where 子句或协议一致性?

编辑:这是根据请求的两个示例数组

0 投票
2 回答
572 浏览

swift - Swift 字典键类型

我有两个类:CatHelper 和 DogHelper,它们都是从 DataHelper 继承的,并且都只包含类函数。

我想要一本 [DataHelper : [String]] 类型的字典

为此,我使 DataHelper 符合 Hashable + Equatable

但是我很难实例化这样的字典。这是我到目前为止尝试过的

但是编译器说“无法将 CatHelper.Type 类型的值转换为 DataHelper 类型的预期字典键”

编辑 :

然后,我想遍历这个字典来做,在这个例子中

在这种情况下,拥有 CatHelper 或 DogHelper 的实例没有用,因为我只使用类函数。

0 投票
1 回答
199 浏览

swift - 如何解释物理体位掩码系统的这个 Swift SpriteKit 示例代码

我深入研究了 Apples SpriteKit 和 GameplayKit 示例代码,发现了一个用 Swift 编写的名为“DemoBots”的项目。在那些项目中使用了一些非常有趣的概念,我想将它们应用到我的项目中。

我已经在将碰撞处理封装到一个处理程序类中,这与该示例代码中处理冲突的方式非常相似。

在这个项目中,我为一个名为的结构找到了以下代码RPColliderType

每次设置这样的 // 属性时都会使用这个结构.collisionBitmask:(我.contactBitmask已经使用组件和实体设计指南实现了这个).categoryBitmaskSKPhysicsBody

到现在为止还挺好。来自 Objective-C 我的问题是我不完全理解 RPColliderType 结构中的以下代码行是做什么的:

这是否意味着每次我调用该计算属性时(这就是它们在 swift 中的调用,对吗?)属性 - 当我将它分配给 a 时我会这样做SKPhysicsBody- 它会将它添加到那些静态类字典中。但我在解释 ' mask' / ' reduce' / ' union' 命令时遇到问题。

那真的有什么作用?

0 投票
3 回答
3012 浏览

ios - 如何将 Swift 中的 Dictionary 转换为相关类型?

这就是我试图用字典做的事情:

这就是我尝试转换的内容,作为来自服务器的 JSON 响应的一部分:

它不起作用,因为注释行有错误:

无法将“NSTaggedPointerString”(0x1a1e3af20)类型的值转换为“NSNumber”(0x1a1e458b0)。

0 投票
1 回答
105 浏览

swift - Swift Dictionary:无法完全删除条目

我有一个 Swift 字典,我正在尝试完全删除一个条目。我的代码如下:

我使用 questions[0].removeAll() 删除条目,但它留下了一个空条目。我怎样才能完全删除一个条目以便没有痕迹?

0 投票
2 回答
5694 浏览

swift - 在 Swift 中查找字典条目的索引

我正在尝试在字典中查找条目的索引。我的字典如下:

我尝试使用 indexOf 但它不起作用。我的代码如下:

0 投票
2 回答
167 浏览

swift - 将新条目添加到“复杂”字典

我有一个更“复杂”的字典,我正在尝试向其中添加新条目。字典代码如下:

我尝试使用以下代码添加一个新条目:

但是收到“致命错误:数组索引超出范围”我查看了几个示例,但似乎都处理更简单的字典。我错过了什么?

0 投票
1 回答
2428 浏览

arrays - 无法将类型“[[String : AnyObject]]”的值分配给类型“[[String : AnyObject?]]”

我收到以下错误:

无法将类型“[[String : AnyObject]]”的值分配给类型“[[String : AnyObject?]]”

奇怪的是,在我重新启动 Xcode 之前,这个任务一直在工作,我开始收到这个错误。从我在网上阅读的内容来看,这不应该给出错误。

这是我的代码: