美文网首页
Swift3的Dictionary和OC的NSDictionar

Swift3的Dictionary和OC的NSDictionar

作者: 博为峰51Code教研组 | 来源:发表于2017-05-08 17:24 被阅读0次

在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合。键集合不能重复,值集合没有特殊要求。键和值集合中的元素可以是任何对象,但是不能是nil。Foundation框架字典类也分为NSDictionary不可变字典和NSMutableDictionary可变字典。

NSDictionary与Dictionary之间的关系如同NSArray与Array之间的关系,Swift在 层能够将它们自动地桥接起来,一个NSDictionary对象桥接之后的结果是[NSObject : AnyObject]字典(值为NSObject类型,键为AnyObject类型的Dictionary字典)。

1 |  import Foundation

2 |  let keyStr : NSString = "one two three four five"

3 |  let keys : NSArray = keyStr.components(separatedBy: " ")

4 |  let valueStr : NSString = "swift Object-C java C PHP"

5 |  let values : NSArray = valueStr.components(separatedBy: " ")

6 |  let foundationDict : NSDictionary = NSDictionary(objects:values as [AnyObject], forKeys:keys as! [NSCopying])

7 |  let swiftDict : Dictionary = foundationDict as Dictionary

8 |  print("字典:\(swiftDict.description)")

9 |  let value: AnyObject? = swiftDict["three"]

10 |  print("threeValue:\(value!)")

11 |  for (key, value) in swiftDict {

12 |      print("key:\(key) - value:\(value)")

13 |  }

运行结果如下:

字典:[one: swift, five: PHP, three: java, two: Object-C, four: C]

threeValue:java

key:one - value:swift

key:five - value:PHP

key:three - value:java

key:two - value:Object-C

key:four - value:C

上述代码中,第1行是引入Foundation。第6行代码声明并初始化NSDictionary字典,第7行代码是NSDictionary字典赋值给Dictionary字典,这个过程也发生了类型转换,不仅是NSDictionary到Dictionary的转换,而且它们的内部元素也发生了转换。

第10行代码是从Dictionary字典取three键对应的值,它的类型是可选的AnyObject类型,这是因为有可能取不到这个值。第11行代码是遍历Dictionary字典键和值集合。

相关文章

  • Swift3的Dictionary和OC的NSDictionar

    在Foundation框架中提供一种字典集合,它是由“键-值”对构成的集合。键集合不能重复,值集合没有特殊要求。键...

  • 基础知识

    1.swift包含oc的所有基础类型,包含自己的基础类型Array,Set和Dictionary。高阶类型元祖Tu...

  • JS中的对象基础认知

    对象 JavaScript中的对象和OC中的字典 Dictionary是一样的,一组“键值对”(key-value...

  • JavaScript之对象

    JavaScript中的对象和OC中的字典 Dictionary是一样的,一组“键值对”(key-value)的集...

  • Swift小技巧(一)

    所有小技巧都是基于Swift3 1.OC中的#pragma mark在swift中,使用// MARK:来实现 结...

  • swift语法--07字典

    swift语法--07字典 字典 格式 var dict: Dictionary 注意: 将OC的{}换成了[] ...

  • swift性能分析

    1、swift的基本数据类型string、dictionary等都是struct类型,而oc的NSString、N...

  • Alamofire4.4 在swift3 项目中的使用

    最近刚接手swift3和OC混编的项目,项目比较乱,由于网络请求的工具类是上一个人基于AFN二次封装的,在swif...

  • 【Swift】判断类型

    在OC中我们判断类型是通过 方法进行判断类型的,而在Swift3中判断类型的方法为: 使用方法:判断subView...

  • 映射和哈希表

    Map Map 在有些编程语言中也叫字典, dictionary, Python, OC, Swift 每一个Ke...

网友评论

      本文标题:Swift3的Dictionary和OC的NSDictionar

      本文链接:https://www.haomeiwen.com/subject/bxqvtxtx.html