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]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |