Swift is、isMember、isKind

1. is是關(guān)鍵字.可以用于任何類型的判斷.包括了非對(duì)象類型,如Int等類型.或者判斷對(duì)象是參數(shù)給定的類或是子類

let a = 10
if a is Int {
    print("YES")
}

let a = NSObject()
if a is NSObject {
    print("YES")
}
2. 注意,is是判斷類型的. 如果枚舉的值是Int,用枚舉值去判斷是否是Int得到的結(jié)果會(huì)是false,因?yàn)槭敲杜e類型.
enum MyEnumState : Int {
    case state1         = 0      
    case state2         = 1 
}

let a = MyEnumState.state1
if a is Int { // Cast from 'MyEnumState' to unrelated type 'Int' always fails
    print("YES") // Will never be executed
}
else {
    print("NO") // 執(zhí)行
}

3. 判斷類的時(shí)候效果參考isKindOfClass,如果是該類或者是子類都會(huì)返回YES

4. isMember和isKind方法

isMember和isKind不是關(guān)鍵字,屬于遵循NSObjectProtocol協(xié)議并且實(shí)現(xiàn)對(duì)應(yīng)方法的協(xié)議方法(NSObject默認(rèn)實(shí)現(xiàn)了這些方法,所以繼承NSObject就不需要去實(shí)現(xiàn)這些方法),用法和is不太一樣.

let a = NSObject()
if a.isKind(of: NSObject.self) {
    print("YES");
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在編寫代碼時(shí),經(jīng)常碰到我創(chuàng)建的某個(gè)對(duì)象是否是某個(gè)類或者屬于某個(gè)枚舉,在Swift中可以使用isMember,isK...
    山有木枝壯閱讀 5,786評(píng)論 0 0
  • 1.Swift 中的屬性必須默認(rèn)有值,要不然就設(shè)置可空? ,否則編譯不過 2.能不寫self就不寫,但是閉包里面要...
    魚香肉絲_我魚呢閱讀 1,159評(píng)論 0 0
  • 只會(huì)介紹與 OC 有明顯區(qū)別的地方,不會(huì)介紹 OC 中沒有的,比如元組。當(dāng)前總結(jié)也只是蜻蜓點(diǎn)水而已,但是有 OC ...
    CoderHG閱讀 4,178評(píng)論 6 45
  • swift 中所有的數(shù)據(jù)類型都是由三種不同的數(shù)據(jù)結(jié)構(gòu)(枚舉、結(jié)構(gòu)體、類)中的某一種實(shí)現(xiàn)的。 枚舉和結(jié)構(gòu)體在代碼中以...
    August24閱讀 248評(píng)論 0 0
  • swift社區(qū):http://www.swift51.com[http://www.swift51.com](開源...
    白水灬煮一切閱讀 2,050評(píng)論 6 6

友情鏈接更多精彩內(nèi)容