Da xia 的技术博客

不积跬步,无以至千里.

踏入iOS开发行列不久,暂居北京。


欢迎访问我的博客,这里主要记录我的工作和生活

Swift 3 学习笔记 - is 和 as

is

is 的功能与 Object-C 中的 isKindOfClass 类,用来判断一个对象是否属于某个类或者某个类的子类。区别是它不仅可以用于 class 类型上,也可以对 Struct 或者 enum 类型进行判断。

class ClassA {}
class ClassB: ClassA {}

let obj: AnyObject = ClassB()
if (obj is ClassA) {
    print("属于 ClassA") // true
}

if (obj is ClassB) {
    print("属于 ClassB") // true
}

在 Object—C 中经常使用 isKindOfClassisMemberOfClass 判断一个对象是否属于某个类,在 Swift 中仍然可以使用它们。

as

as 用于类型转换,as? 返回一个向下转换成的类型的可选值,as! 向下转换并强制解包。当使用 as!向下转型为一个不正确的类型时,会触发运行时错误。在编码的时候建议都使用 as?,转型失败会返回一个 nil,不会导致 crash。

class ClassA {}
class ClassB: ClassA {}

let obj: ClassA = ClassB()
if let objA = obj as? ClassB {
    print("true")
}

最近的文章

每周读 Week 11

从本周开始,每周日在这里记录上一周的学习的东西吧。一方面是因为很多东西看过了,可能过了一段时间就忘记了,简单记录下方便以后查阅。另一方面是为了约束自己去主动阅读、学习新知识,不能靠着业务去驱动学习,主动一点应该会进步快一点吧。上周是今年的第 11 周,下面是本周学习内容:Objective-C 深入理解 +load 和 +initialize -> 理解 + load 方法挺重要的,工作时经常看到它。iOS 视图控制器转场详解 -> 作者讲的非常详细,认真看完不容易,自己敲一遍...…

继续阅读
更早的文章

Mysql 命令

1. 连接到 Mysql连接到本机的 Mysql$ mysql -u root -p ‹ruby-2.2.4›Enter password:连接到远程机器的 Mysqlmysql -h [机器IP] -u [用户名] -p [密码];2. 创建数据库mysql> drop database awes...…

继续阅读