美文网首页iOS Developer程序员
Swift 中 is、as类型转换

Swift 中 is、as类型转换

作者: 敌敌味丶 | 来源:发表于2016-11-06 16:21 被阅读0次

1. is类型转换

用来判断该对象的类型能否被兼容,返回Bool值。

let str = NSString()
let b1 = str is NSString    //b1 = true
let b2 = str is NSObject  //b2 = true
let b3 = str is NSData   //b3 = false

2. as类型转化

Swift中类型要求非常严格,当一个对象被转成同种类型(如:字符串的String和NString也算)或一个泛指类型(即父类型)时,直接用as进行转换即可

let str = String()
let str1 = str as NSString
//转换成父类型
let str2 = str as NSObject
let str3 = str as AnyObject  //AnyObject可以代表任何class类型的实例
let str4 = str as Any        //Any可以表示任何类型,包括方法类型(function types)
//个人觉得Any比AnyObject好用

当要从父类型转换成其子类型时,需要增加判断,要用as?、as! 。as?表示可不可以转换成功都不会抛出异常;as!则表示一定可以转换,当转换失败时则抛出异常。

//确定的情况下用!
let str5 = str2 as! String   //str2类型为NSObject
let str6 = str3 as! String
let str7 = str4 as! String

//不确定时改为?
let str5 = str2 as? String
let str6 = str3 as? String
let str7 = str4 as? String

通常情况下系统都会提示我们加。加?得出的类型打印或显示出来时会多个Optional(),要去掉它时,在最后一次类型转换时加!即可。

相关文章

  • 2019-05-05: 九:Swift中类型转换?

    一:Swift中类型转换?

  • 洞悉Objective-C和swift类型转换的处理机制

    Objective-C和swift中可以互相转换和能够互相使用的类型,被称为bridged类型。所有swift类型...

  • 笔记整理(Swift基本语法一)

    类型推导 基本运算 相通类型之间才能进行运算 Swift 中没有隐私转换 Int 类型转换成Double类型,使用...

  • 从零开始学swift之基本类型

    浮点数和类型转换 浮点数 2.类型转换在swift中没有类型的自动转换,因为很多错误都可能因为类型隐式转换导致错误...

  • Swift中类型转换

    这个类型的转换是给相应类加了分类,直接用点语法就可以调用。 Int转Float、Double、String: Fl...

  • Swift 中 is、as类型转换

    1. is类型转换 用来判断该对象的类型能否被兼容,返回Bool值。 2. as类型转化 Swift中类型要求非常...

  • swift中 类型转换

    在使用类型转换时,需要使用as?或者as!方式。as?是一种比较安全的转换方式,其会将类型转换后的结果映射为Opt...

  • 类型转换

    Swift 语言类型转换可以判断实例的类型。也可以用于检测实例类型是否属于其父类或者子类的实例。Swift 中类型...

  • Swift 之类型转换

    Swift 语言类型转换可以判断实例的类型。也可以用于检测实例类型是否属于其父类或者子类的实例。Swift 中类型...

  • Swift 类型转换 (as as! as? 区别)

    Swift 语言中类型转换使用的关键字是as,与类型检查相似,Swift语言中的类型转换有向上兼容向下转换之分,也...

网友评论

    本文标题:Swift 中 is、as类型转换

    本文链接:https://www.haomeiwen.com/subject/ushnuttx.html