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 索引的条件语句

OC-NSArray

求助关于 swift 数组,NSArray 和 闭包 的问题

Swift中实现Array数组和NSArray数组的相互转换与遍历

NSArray 与 C Array 性能比较