Swift - 41 - swift1.2新特性(2)

swift 和 OC 的桥接

//: Playground - noun: a place where people can play

import UIKit

var PI = "3.14"
// Double(PI)
// 将swift的字符串转换为OC的字符串, 调用OC中的函数
(PI as NSString).doubleValue
(PI as NSString).containsString(".")
(PI as NSString).rangeOfString("14")

// 字典方面的桥接
var dict = [1:"Rinpe", 2:"Lili"]
(dict as NSDictionary).allValues
(dict as NSDictionary).allKeys

var arr = [1, 2, 3]
(arr as NSArray).indexOfObject(3)
// 默认情况下, swift中的数组是不允许存放不同类型元素的
// 所以在桥接到OC中的NSArray的时候, 就会出现问题, 这里可以使用下面初始化方法
// 来使得一个swift数组可以存放各种类型的元素, 然后进行桥接
var arr2:[AnyObject] = ["imooc", 1, 1.3]
(arr2 as NSArray)

// OC - swift
var arr3 = NSArray(arrayLiteral: "imooc", 2, 3.4)
arr3 as Array

// 桥接失败则返回nil
arr3 as? Array<String>

  

你可能感兴趣的:(Swift - 41 - swift1.2新特性(2))