У меня есть объект NSValue, который может «вставить» экземпляр неизвестного типа (CGPoint, CGRect и т. Д.), И мне нужно определить этот тип во время выполнения. Как мне это сделать в Свифт?Как узнать тип объекта, помещенного в NSValue с помощью Swift?
Я пытался сделать что-то вроде этого:
if ((value as Any) is CGPoint) {}
else if (((value as Any) is CGRect)) {}
...
Когда value
является объектом NSValue, содержащий CGPoint, не попасть в, если п. Тогда я, когда печатал value
, дает мне NSPoint: {150, 150}
, который, как я полагаю, почему-то не попадает в статью.
Любые идеи, почему это происходит и как его решить?
Большое спасибо!
Там есть бесплатный шунтирующий между NS * и * CG. Вы пытались использовать NSPoint вместо CGPoint в предложении if? Например. 'if value is NSPoint {' –
Я пробовал это, но компилятор не принимает это сравнение, и я получаю сообщение об ошибке «Использование необъявленного типа NSPoint» –