Swift3的Dictionary和OC的NSDictionary关系
2017-05-08 00:00
399 查看
在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的NSDictionary关系
- NSDictionary,NSMUtableDictionary-OC+class
- 黑马程序员———OC语言 NSDictionary和 NSMutableDictionary的介绍
- [Objective-C]OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)
- OC之之NSDictionary/NSMutableDictionary
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- oc-Foundation_04_NSDictionary_NSMutableDictionary
- OC-字典常用操作(NSDictionary、NSMutableDictionary)
- OC 学习笔记4 NSSet NSMutableSet NSDictionary NSMutableDictionary NSNumber NSValue
- OC关于NSDictionary和NSMutableDictionary方法的使用
- OC 重点之NSArray(数组) NSDictionary不可变字典类与NSMutableDictionary 可变字典类 (概括)
- 黑马程序员----OC学习之NSDictionary及NSMutableDictionary
- OC中NSDictionary、NSMutableDictionary、NSSet、NSMutableSet
- OC基础—集合之NSSet、NSDictionary(字典)、NSMutableDictionary
- 【IOS 开发学习总结-OC-31】★★OC之foundation 框架——字典(NSDictionary 与 NSMutableDictionary)
- OC_NSDictionary和NSMutableDictionary
- OC中Foundation框架之NSDictionary、NSMutableDictionary
- OC-FUNDATION-NSDictionary&NSMutableDictionary&Block
- OC中字典基本概念和常用方法(NSDictionary和NSMutableDictionary)
- OC-字典常用操作(NSDictionary、NSMutableDictionary)