Как проверить, имеют ли два подкласса UIViewController один и тот же подкласс?У меня есть два UIViewControllers, которые мне нужно сравнить, чтобы узнать, являются ли они одним и тем же подклассом UIViewController
0
A
ответ
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")
}
ли вы думаете о ', если позволить VC1, как? TheSubclass, vc2? как TheSubclass {...} ', или вы ищете универсальное решение, в котором вы даже не знаете подкласс? –
Я сравнивал два подкласса, поэтому тип (из: vc1) == type (of: vc2) был бы правильной реализацией, но я решил использовать более элегантный подход, который я нашел в своем коде. Я уверен, что я найду для этого использование в будущем. Я обнаружил, что чаще всего не нужно вводить проверку - это плохой способ реализовать код. Он похож на ребенка vc, обладающего знаниями о его родительском vc в теории. В любом случае, спасибо за все время! – Sethmr