微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

swift 中的数组

swift可无缝的将oc中的NSArray和NSMubableArray转换为swift对象直接使用.不过在swift中本身也有个Array.他们之间还有

不少的区别.

1.swift找那个的Array是结构体,而oc中的两个数组是类


2.swift array的声明方式比较灵活

let arr1 :[String] = []

let arr2 = [String]()

let arr3 = Array<String>()

let arr4:[String] = [String]()

let arr5:Array = Array<String>()必须带泛型

以上几种种方式可以声明空的Array,只要把 let 改为 var就可以调用增删改等修改数组内容方法.

NSArray和NSMutableArray,前面的类只能操作一些只读的方法,后者可以修改数组内容,而且构造没有泛型.

也可以使用:

let arr1 = []

let arr2:NSArray = []

let arr3:NSMutableArray = []

let arr4 = NSArray()不能带泛型

特别注意:

在swift中对于NSArray和NSMutableArray申明变量的时候用var,let其实都是可以的,不过编译器推荐都用let

let arr = [],这种方法声明的方式相当于let arr = NSArray()


3.let 的Array和NSArray,前者还是可以这IDE中调用append方法,而后者根本没有这些改变数组的方法;

var的Array的改变方法有append(),insert(),NSMubableArray中对应的是insertObject(),addobject()方法名有点长.


4.let/var arr = [1,2]这种有值的数组就是Array.也可以通过构造方法来进行声明.


5.Array可以用泛型,oc的两个数组类没有泛型.swift的可以更规范.当然swift的也可以什么都放,只要不指定泛型.


6.let aa = Array(count: 10,repeatedValue: 0)可以通过这种方式来确定一个确定容量的数组.在oc中则是用类似的是

Nsstring *strings[3]; Nsstring *strings[3] = {@"",@"",@""}; NSArray *stringsArray = [NSArray arrayWithObjects:strings count:2];

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐