Array 与 NSArray 的不同点对比表
Posted Dast1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Array 与 NSArray 的不同点对比表相关的知识,希望对你有一定的参考价值。
是什么(类型) | 可变吗 | 能存啥 | |
---|---|---|---|
NSArray | 引用类型,不同指针变量指向同一块内存,对一个变量操作时,会自动映射到另一个变量。 | 创建后,不可变 | 单个数组对象,可存 OC 语言环境下的多种对象数据类型,eg:@[@1, "2", 对象] |
Array | 值类型,每个变量有自己的数据拷贝。对一个变量的操作不会影响其他变量。 | 声明为var时可变,声明为let时不可变 | 单个对象,只能存储同类型任意类型元素,eg:[1,2,3],["1", "2", "3"] |
Swift中实现Array数组和NSArray数组的相互转换与遍历
Array是Swift中的数组数据类型。而NSArray是OC中的数组数据类型。两者有差别有联系。在Swift中有时候难免会使用到OC中的一些东西。今天我们就来Swift中使用NSArray和Array,而且进行转化。
(1)声明一个Array数组。并进行遍历。代码例如以下:
let stringArray: Array<String> = ["10", "20","30","40","50"] for index in stringArray{ println(index) }
输出结果例如以下:
。
使用Swift遍历Array数组没有不论什么问题,能够使用for...in循环。
(2)声明一个NSArray数组,并进行遍历,代码例如以下:
let stringNSArray: NSArray = ["10", "20","30","40","50"] for index in stringNSArray{ println(index) }
输出结果例如以下:
。
可见NSArray数组也能够在Swift中直接进行声明并进行遍历。
(3)声明一个NSArray数组,转化为Array数组。再进行遍历:
let stringNSArray: NSArray = ["10", "20","30","40","50"] let stringArray:[String] = stringNSArray as! [String] for index in stringArray{ println(index) }
输出结果例如以下:
。
可见NSArray能够在类型转换后直接赋值给Array数组。然后也能够进行遍历。
(4)声明一个Array数组,转化为NSArray,再进行遍历:
let stringArray: Array<String> = ["10", "20","30","40","50"] let stringNSArray:NSArray = stringArray for index in stringNSArray{ println(index) }
输出结果例如以下:
。
能够看到Array数组也能够直接转化为NSArray。并进行遍历。
总结,Swift在数组方面Array非常好的兼容了OC中的NSArray。能够直接进行赋值转换。
github主页:https://github.com/chenyufeng1991 。
欢迎大家訪问!
以上是关于Array 与 NSArray 的不同点对比表的主要内容,如果未能解决你的问题,请参考以下文章
类型为 var Array 的 Swift 类字段被转换为不可变的 NSArray 而不是 NSMutableArray
为啥 NS 谓词无法解析我对 NSArray 索引的条件语句
求助关于 swift 数组,NSArray 和 闭包 的问题