2017-02-16 29 views
0

Как проверить, имеют ли два подкласса UIViewController один и тот же подкласс?У меня есть два UIViewControllers, которые мне нужно сравнить, чтобы узнать, являются ли они одним и тем же подклассом UIViewController

+0

ли вы думаете о ', если позволить VC1, как? TheSubclass, vc2? как TheSubclass {...} ', или вы ищете универсальное решение, в котором вы даже не знаете подкласс? –

+0

Я сравнивал два подкласса, поэтому тип (из: vc1) == type (of: vc2) был бы правильной реализацией, но я решил использовать более элегантный подход, который я нашел в своем коде. Я уверен, что я найду для этого использование в будущем. Я обнаружил, что чаще всего не нужно вводить проверку - это плохой способ реализовать код. Он похож на ребенка vc, обладающего знаниями о его родительском vc в теории. В любом случае, спасибо за все время! – Sethmr

ответ

1

В Swift 3 вы можете сравнить типы объекта с типа (из :) метод:

class VC1: UIViewController { 

} 

class VC2: UIViewController { 

} 

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

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

Спасибо, я видел typeof (vc1), но я не видел версию с быстрым 3. Труднее было найти этот ответ, тогда я подумал, что это будет, но я решил, что мне нужно делать в коде в любом случае. Благодаря! – Sethmr

0

Swift позволяет сравнивать классы, используя ключевое слово is. Например, если у вас есть class a и class b, которые являются подклассами UIViewController. Затем вы можете подтвердить это, используя ключевое слово.

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") 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^