• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift3的Dictionary和OC的NSDictionary关系

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
   

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

 NSDictionaryDictionary之间的关系如同NSArrayArray之间的关系,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字典键和值合。

 



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap