当前位置: 首页 > 面试题库 >

Swift中的有序地图

谯皓君
2023-03-14
问题内容

在Swift 2中是否有任何 内置 方法来创建有序地图?数组[T]按对象附加到其的顺序排序,但字典[K : V]不排序。

例如

var myArray: [String] = []
myArray.append("val1")
myArray.append("val2")
myArray.append("val3")

//will always print "val1, val2, val3"
print(myArray)


var myDictionary: [String : String] = [:]
myDictionary["key1"] = "val1"
myDictionary["key2"] = "val2"
myDictionary["key3"] = "val3"

//Will print "[key1: val1, key3: val3, key2: val2]"
//instead of "[key1: val1, key2: val2, key3: val3]"
print(myDictionary)

是否有任何内置方法来创建有序key : value映射,该有序映射的排序方式与数组相同,还是我必须创建自己的类?

我想尽可能避免创建自己的类,因为Swift所包含的任何内容都将更有效率。


问题答案:

您可以通过输入具有类型的键来对其进行排序Int

var myDictionary: [Int: [String: String]]?

要么

var myDictionary: [Int: (String, String)]?

我推荐第一种,因为它是一种更常见的格式(例如JSON)。



 类似资料:
  • 我需要将双变量传输到本地化文件,如果我写%d,我只能传递int,但我需要传递双变量

  • 问题内容: 我对在groovy中使用排序的映射感兴趣(使用gremlin,这是用于图形数据库的DSL)。 我在这里按排序的地图查看了此博客文章,但我仍然有些困惑。 排序的地图如何声明?它与地图的标准方式有何不同? 使用排序映射时,插入列表中的项目是否会按照插入顺序进行?还是在对已排序的地图中的项目进行排序之前必须先运行? 问题答案: 如果您只是这样声明地图: 然后,您可以看到Groovy默认情况下

  • 问题内容: 我正在尝试编写一个简单的方法,该方法已馈入并返回。查看Apple的文档,这似乎很简单。 以下是我丢到操场上的东西: 就目前而言,我的方法返回nil。我不确定我的错误在哪里,但是我可以放心,这对我来说是愚蠢的。感谢您的阅读。 问题答案: 或者简单地: 或扩展CLLocation: 要将地标格式化为邮寄地址,可以使用“联系人”框架: 地标 包含CLPlacemark对象的数组。对于大多数地

  • 问题内容: 关闭。 这个问题不能重现,或者是由错别字引起的。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 改善这个问题 我输入的是纬度和经度。我需要使用swift 的功能,以便向我提供位置信息的输出。我尝试使用的代码是 在我得到的日志中 似乎该函数正在失败,然后导致该函数中的致命错误。我是否在某处修改了格式? 问题答案: 您永远不会

  • 问题内容: 我目前正在使用Swift开发的iOS应用程序,需要在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的方法来在设备上存储/接收用户内容。 有人可以解释如何存储和访问本地存储吗? 想法是在用户执行操作时存储数据,并在应用程序启动时接收数据。 问题答案: 如果仅存储两个字符串,最简单的解决方案是,在Swift 3中,该类已重命名为just 。 最好将密钥存储在全局位置,以便您可以在代

  • 问题内容: 所以我目前正在尝试显示我在UIWebview中拥有的本地PDF,这是我正在使用的代码: 该代码将成功构建,但是当我运行该应用程序时,它将崩溃并显示以下错误:线程1:EXC_BAD_INSTRUCTION(code = EXC-I386_INVOP,subcode = 0x0) 我已经找到了一些有关如何执行此操作的教程,但是它们都已经过时或在Objective-C中。 问题答案: 干得好