亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AnyObject無法在Xcode8 beta6中運行?

AnyObject無法在Xcode8 beta6中運行?

小唯快跑啊 2019-09-03 16:11:08
在Xcode8 beta6中,以下代碼將引發警告:'is'test始終為true。但它不會打印通過。    struct TestStruct {    }    //warning: 'is' test is always true    if TestStruct() is AnyObject {        print("pass")    }以下代碼將引發警告:從'T'到'AnyObject'的條件轉換始終成功public static func register<T>(_ protocolType: T.Type, observer: T) {    //Warning: Conditional cast from 'T' to 'AnyObject' always succeeds    guard let object = observer as? AnyObject else {        fatalError("expecting reference type but found value type: \(observer)")    }    //...}
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

長話短說。


要檢查值是否具有引用類型:


if type(of: value) is AnyClass {

    // ...

}

要檢查type是否為引用類型:


if SomeType.self is AnyClass {

   // ...

}


查看完整回答
反對 回復 2019-09-03
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

從上面的注釋中從純Swift值到AnyObject的轉換成功,type(of: o)打印“_SwiftValue”。這就是我找到源文件的方式。所以似乎任意值都被裝箱為AnyObject。

查看完整回答
反對 回復 2019-09-03
  • 3 回答
  • 0 關注
  • 534 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號