2017-02-16 123 views
0

如何檢查兩個UIViewController子類對象是否具有相同的子類?我有兩個UIViewControllers,我需要比較,看看他們是否是UIViewController的相同的子類

+0

你覺得'如果讓VC1作爲? TheSubclass,vc2?作爲TheSubclass {...}',還是你在尋找一個通用的解決方案,你甚至不知道子類? –

+0

我在比較兩個子類,所以type(of:vc1)== type(of:vc2)應該是正確的實現,但我最終採取了更優雅的方法,在我的代碼中找到。不過,我相信我會在未來找到這方面的用處。我發現更經常的是,不必鍵入檢查是實現代碼的不好方法。它類似於理論上知道它是父vc的孩子vc。無論如何感謝大家的時間! – Sethmr

回答

1

在斯威夫特3,您可以用(:)的方法類型比較對象的類型:

class VC1: UIViewController { 

} 

class VC2: UIViewController { 

} 

let vc1 = VC1() 
let vc2 = VC2() 

let typeComparisonResult = type(of: vc1) == type(of: vc2) 
+0

謝謝,我看到了typeof(vc1),但我沒有看到swift 3的版本。很難找到這個答案,然後我認爲它會是,但是我解決了我需要以代碼方式做的事情。謝謝! – Sethmr

0

Swift允許通過使用is關鍵字進行類比較。例如,如果您有class aclass b,它們都是UIViewController的子類。然後你可以使用is關鍵字來確認。

class a:UIViewController 
{ 

} 

class b:UIViewController 
{ 

} 

let instanceA:a = a() 
let instanceB:b = b() 

if a is UIViewController && b is UIViewController 
{ 
    print("Both are subclasses of UIViewController") 
} 
相關問題