美文网首页
Swift - AnyObject与Any的区别

Swift - AnyObject与Any的区别

作者: 小驴拉磨 | 来源:发表于2020-07-09 18:08 被阅读0次
1、AnyObject :代表任何class类型的对象实例。
//狗
class Dog {
}
 
//猪
class Pig {
}

let dog = Dog()
let pig = Pig()
var arr: [AnyObject] = [dog, pig]
        
for animal in arr {
    if let d = animal as? Dog {
        print("这是只狗")
    }else if let p = animal as? Pig {
        print("这是只猪")
    }
}
2、Any :范围更广,代表除函数外任何类型的实例。
let dog = Dog()
let pig = Pig()
var arr: [Any] = [Any]()
arr.append(20)
arr.append(dog)
arr.append("dog")
arr.append(pig)


for any in arr {
    switch any {
        case let any as Int:
            print("这是个Int类型")
        case let any as String:
            print("这是个String类型")
        case let any as Dog:
            print("这是只狗")
        case let any as Pig:
            print("这是只猪")
        default:
            print("这是个未知类型")
    }
}

原文出自:www.hangge.com

相关文章

网友评论

      本文标题:Swift - AnyObject与Any的区别

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