Swift类型判断

一、isKind和isMember

class Animal {}
class Dog:Animal{}
var animal:AnyObject = Animal()
if animal .isKind(of: Animal.self){
   print("动物类")
}
animal = Dog()
if animal.isKind(of: Animal.self){
     print("动物类")
}
if animal.isMember(of: Animal.self){
    print("狗类")
}else{
  print("非狗类")
}
  • isKind和isMember属于oc的方法,类型必须是AnyObject 类型的(可以转换成NSObject的类)
  • isKindof:判断其类型是同类或者其子类
  • .isMembeof:判断其类型只是同类,如果是子类返回为true

二、is

swift的类型判断方法,如果实例是同类型或者其同类型的子类返回为true,类似isKindof

import UIKit
class Animal {}
class Dog:Animal{}
var animal:Any = Animal()
if animal is Animal {
   print("动物类")
}
animal = Dog()
if animal is Animal {
   print("狗也是动物")
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 五种方式进行类型判断 继承 NSObject 利用runtime获取类 let url = NSURL() le...
    husky_duang阅读 3,362评论 0 4
  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 3,512评论 0 50
  • 一直没有时间好好看一下swift,最近复习了一遍语法,这里记录swift学习过程中遇到的一些问题和要点,和Obje...
    bomo阅读 2,545评论 0 25
  • 最近瞄上了Swift,随着3.0版本的发布,1.x,2.x的部分API发生了一些算是较大的变化,语法越来越简便,实...
    earthX阅读 1,698评论 1 19
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 4,099评论 0 6

友情链接更多精彩内容