簡體   English   中英

快速檢查對象的屬性存在

[英]swift check an object's property existence

我有以下UINib擴展方法,我想知道是否可以為未存檔視圖設置委托

    public class func decodeView<T:UIView>(nibName name:String,className classType:T.Type,delegate:AnyObject) -> T {

    let nib = UINib(nibName: name)
    let topLevelObjects = nib.instantiateWithOwner(nil, options: nil)
    let view = topLevelObjects[0] as T
    view.setTranslatesAutoresizingMaskIntoConstraints(false)
    //check if view.delegate exists then view.delegate = delegate 
    return view
}

如果您要問Swift是否支持反射TL; DR:您需要從NSObject 否則您將獲得有限的信息。

這個問題中, Swift支持反射嗎? 您將獲得有關您的可能性的更詳細的討論。

清除此部分后,可以在此SO答案中找到有關如何獲取屬性列表的示例。

盡管一種快速且骯臟的方法可能只是嘗試訪問該屬性(使用KVC)並在失敗時捕獲異常。 Swift 支持Try / Catch / Finally構造,但是這種不錯的技巧允許您編寫如下代碼:

SwiftTryCatch.try({
         // try something
     }, catch: { (error) in
         println("\(error.description)")
     }, finally: {
         // close resources
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM