Array与NSArray关系

来源:互联网 发布:淘宝店怎么运营 编辑:程序博客网 时间:2024/06/08 23:24
   

 NSArrayArray之间的关系如同NSStringString之间的关系,NSArray是类类型,而Array是结构体类型,一个是引用类型,一个是值类型,它们是怎样实现无缝转换的呢?Swift在底层能够将它们自动地桥接起来,一个NSArray对象桥接之后的结果是[AnyObject]数组(保存AnyObject元素的Array数组)

下面我们来看一个使用ArrayNSArray的例子

  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-CNSString类型的ocStr,第2行代码使用NSStringcomponentsSeparatedByString方法,该方法可以使用指定的字符分隔字符串,返回Object-CNSArray数组strArray。第3行代码是将NSArray数组赋值给SwiftArray数组swiftArray,这个过程也发生了类型转换,不仅是NSArrayArray的转换,而且它们的内部元素也从NSString转换为AnyObject

4行代码是遍历strArray集合,5行代码输出的是NSString数据。第7行代码是将数组strArray通过as!转换为[String]数组,然后遍历集合,8行代码输出的是String类型的数据。第11行代码输出的是AnyObject数据。第14代码输出的是String数据。

 

 

 

 

0 0