Array与NSArray关系
来源:互联网 发布:淘宝店怎么运营 编辑:程序博客网 时间:2024/06/08 23:24
NSArray与Array之间的关系如同NSString与String之间的关系,NSArray是类类型,而Array是结构体类型,一个是引用类型,一个是值类型,它们是怎样实现无缝转换的呢?Swift在底层能够将它们自动地桥接起来,一个NSArray对象桥接之后的结果是[AnyObject]数组(保存AnyObject元素的Array数组)。
下面我们来看一个使用Array和NSArray的例子
1 | let ocStr : NSString = "Swift is easy"
2 | let strArray : NSArray = ocStr.components(separatedBy: " ")
3 | let swiftArray = strArray
4 | for item in strArray {
5 | print(item) //输出类型是NSString
6 | }
7 | for item in strArray as! [String] {
8 | print(item) //输出类型是String
9 | }
10 | for item in swiftArray {
11 | print(item) //输出类型是AnyObject
12 | }
13 | for item in swiftArray as! [String]{
14 | print(item) //输出类型是String
15 | }
上述代码,第1行代码声明并初始化Object-C中NSString类型的ocStr,第2行代码使用NSString的componentsSeparatedByString方法,该方法可以使用指定的字符分隔字符串,返回Object-C中NSArray数组strArray。第3行代码是将NSArray数组赋值给Swift的Array数组swiftArray,这个过程也发生了类型转换,不仅是NSArray到Array的转换,而且它们的内部元素也从NSString转换为AnyObject。
第4行代码是遍历strArray集合,第5行代码输出的是NSString数据。第7行代码是将数组strArray通过as!转换为[String]数组,然后遍历集合,第8行代码输出的是String类型的数据。第11行代码输出的是AnyObject数据。第14代码输出的是String数据。
- Array与NSArray关系
- new与alloc init,[NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
- 解释array与pointer关系
- Array与ArrayList的关系与区别
- Array与ArrayList的关系与区别
- NSArray & NSString 关系
- Swift中实现Array数组和NSArray数组的相互转换与遍历
- iOS开发中 new与alloc/init的区别 及 [NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
- iOS开发中 new与alloc/init的区别 及 [NSArray array] 和 [[NSArray alloc]init] 及 self. 和 _ 的区别
- NSMutableArray,NSArray与NSSet
- NSArray与NSSet
- NSArray与NSDictionary使用
- NSArray与NSMutableArray
- NSMutableArray与NSArray
- NSArray与字符串
- NSMutableArray 与 NSArray 互转
- NSArray与NSPredicate使用
- NSArray与NSMutableArray的区别
- 编码练习——Java-String-API-练习
- Webpack学习笔记(二)
- Swageer学习文档
- SpringMVC错误②
- Java 表达式如何转化成字符串输出?
- Array与NSArray关系
- 备忘录模式
- Logistics回归模型
- JS脚本实现浏览器自动点击(阿里员工秒杀月饼)(转)
- 剑指Offer——Java答案
- 集合框架-集合的嵌套遍历(ArrayList嵌套HashMap)
- 构造函数和一般函数
- hrbust 2086 奔跑的xiaodao(二分)
- Mysql数据库字符集和校对集