问题标签 [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 投票
2 回答
460 浏览

ios - 如何在 Swift 中访问存储在字典中的数组?

这就是我使用数组创建字典的方式:

NSLog 结果:

我试过这个:

}

这将返回 nil,这对我来说没有意义。星期三是存储的密钥,所以我认为返回数组就足够了。

我正在尝试做的事情:

基本上我有一个有 7 个部分的表格,每个部分代表一天。在每一天,我都在存储时间段,其中包含在该时间段中预订活动的费用。

当我使用 numberOfRowsInSection 时,我将能够使用 Dictionary 键来获取将在 tableView 中显示的特定日期的行数(时隙)。这是我能想到的用 NOSql 做的最简单的方法。

我将字典存储在 parse.com 的列中,并在我的 tableView 中访问该字典。

无论如何,我不明白为什么我似乎无法使用密钥访问数组。我可以轻松地使用 NSMutableDictionary,但我在所有项目中都使用 Swift 作为学习体验。

想知道将字典与字典一起使用是否会更好,例如 ["fromTime":value, "toTime":value, "cost":value]

将感谢任何帮助。

谢谢你的时间。

0 投票
4 回答
8486 浏览

swift - Swift:数组内的字典

数据:

如何使用 swift 数组和字典拥有这种结构?此数据显示数组中的字典,对吗?所以我建议:

但这给了我错误:

有任何想法吗?

0 投票
3 回答
231 浏览

swift - Swift:字典数组在初始化后计数为 1,但应该为 0

打印1。我看到数组初始化时有一个空字典,但是有没有办法避免这种情况并且有 0 个元素而不是 1?后来我需要能够做到:

有任何想法吗?

0 投票
2 回答
1128 浏览

swift - 如何编写处理可选值的字典扩展

我正在尝试实现Dictionary扩展,并且我想处理可选值。但是无论我做什么,如果我在字典上使用我的方法[String: String?],它就无法选择性地绑定值。你如何为一个优雅地处理可选值的字典编写一个扩展?


考虑以下扩展:

所以考虑下面的代码:

它奇怪地报告

我可以编写一个非扩展方法来处理具有可选值的字典参数,但不知道如何将其作为Dictionary.

0 投票
0 回答
681 浏览

ios - iOS 8.1 Swift 字典错误:EXC_BAD_ACCESS (XCode 6.1)

TLDR:我在为 iOS8.1 构建的 XCode 6.1 中使用 swift 时遇到 EXC_BAD_ACCESS 错误。我相信这个问题很可能是编译器错误。

我正在制作一个应用程序,其中允许用户将字典(在英语意义上)中的(韩语)单词添加到单词列表中。我有以下类定义一个单词(带有相关的定义、音频文件、用户交互统计等)和一个单词列表(带有相关的单词列表和在列表中添加/删除单词的方法,按字母顺序排列列表, ETC):

接下来,我有一个带有 UISearchBar 的 UITableViewController,我用它来向用户显示单词的字典(同样是英语意义上的)。用户通过点击每个单元格右侧的按钮(显示图像)来添加单词,该按钮调用 viewController 中的@IBAction func addWord()

起初,该应用程序编译并且似乎运行良好。我可以添加一个新单词列表并开始向其中添加单词,直到添加第 8 个单词。我(总是在第 8 个单词上)在 (WordList) addWordToList中收到 EXC_BAD_ACCESS 错误,并带有以下 println 信息:

请注意,我添加单词的顺序似乎无关紧要(即“大学生”一词如果是前7个单词之一,则可以成功添加)。代码中没有任何地方我根据单词列表中的单词数显式更改行为(除了将单词列表中的单词显示为 UITableView 中的单元格),或任何会(据我所知)使第 8 个字是一个特殊的数字。事实上,这个数字可以通过使用let hack=解决方案(见下文)更改为不同的数字,但对于特定的构建总是相同的数字。

在这一点上,我完全不知道该做什么。我对 swift 比较陌生,并且花了好几个小时来查找如何修复 exc_bad_access 错误。我已经到了以下几点:

似乎 exc_bad_access 错误通常意味着三件事之一(http://www.touch-code-magazine.com/how-to-debug-exc_bad_access/

  1. 对象未初始化
  2. 一个对象已经被释放
  3. 其他不太可能发生的事情

我觉得 1 或 2 都不适合我,因为在我们得到访问错误之前,我们可以打印出相关字典的内容(knownWords)。但是,与往常一样,我很可能遗漏了一些明显的东西,所以如果这确实是真的,请告诉我。

如果错误是由上述 3 引起的(“其他”),我尝试了以下方法:

(从带有字典的 iOS 8.1 上的EXC_BAD_ACCESS和使用它评估 NSExpression解决方案更新 Swift 字典时的 EXC_BAD_ACCESS 开始)

  1. 我已经尝试过letdutyHack =场景的不同变体,它有时确实会改变结果,但只会改变崩溃前允许的条目数(即,有时我可以在出现错误之前到达字典中的第 15/16 个条目)。但是,我无法使用这种方法找到实际的、无错误的解决方案。
  2. 我已经使用 Release 和 Debug 模式进行了重建;错误出现在两者中。注意我只使用模拟器,没有开发者许可在实际设备上试用。
  3. 我已经关闭(设置为“无”)编译器优化(无论如何它已经关闭了调试版本)。
  4. 我已经尝试构建到 iOS 8.0 并得到相同的错误结果。

任何解决此问题的方法都值得赞赏。let hack =解决方案是可以接受的,但最好的解决方案至少可以保证将来在不同的构建条件下不会产生错误。

谢谢!

0 投票
1 回答
822 浏览

swift - 课堂上的 Swift 词典

我在 Swift 中的类中的字典数组有问题。我的代码在类或结构中不起作用,但它在外部起作用。

0 投票
1 回答
4190 浏览

json - NSJSONSerialization 成 swift 字典

我有一个需要序列化为字典的 json 对象。我知道我可以将它序列化为 NSDictionary 但因为

“在 Swift 1.2 中,具有本机 Swift 等效项(NSString、NSArray、NSDictionary 等)的 Objective-C 类不再自动桥接。”

参考:[ http://www.raywenderlich.com/95181/whats-new-in-swift-1-2]

我宁愿把它放在本机 swift 字典中,以避免尴尬的桥接。

我不能使用 NSJSONSerialization 方法,因为它只映射到 NSDictionay。将 JSON 序列化为 swift 字典的另一种方法是什么?

0 投票
3 回答
2762 浏览

ios - 按对象值的属性对字典进行快速排序

我有一本像<String,Loto>下面这样的字典,Loto 是对象;

所以我的字典像 <"11042015",Loto> 并且我想通过 Loto 对象的 "hafta" 属性对这本字典进行排序。

我怎样才能做到这一点?请帮我!

0 投票
2 回答
3386 浏览

ios - 将 swift 闭包传递给以块为参数的目标 C 函数

我在objective-C中有一个函数如下

我想像这样传递一个快速回调闭包:

其中replyHandler 是类型的闭包

我得到了错误:

replyHandler 来自 WatchConnectivity 委托

所以我不能改变replyHandler的类型。

如何通过参数传递我的快速关闭

进入一个带有参数的块的目标C函数

非常感谢您的帮助!

0 投票
1 回答
119 浏览

ios - Swift字典在追加新数据时删除以前的数据

我有一个带有自定义对象的 swift 字典,我用它来填充我的UITableview. 但是,当我填写字典时,我意识到当我向它附加新数据时它会删除以前的数据。相关代码块如下:

我在这个块内填写字典:

ListItem 类:

这是一个快速的错误还是我犯了一些错误来填补它?

谢谢您的回答

国王问候

解决方案:

问题的原因是在 ListItem 类中使用==而不是。===Daniel T. 的解决方案是正确的答案。谢谢你们。