알 수없는 유형 (CGPoint, CGRect 등)의 인스턴스를 "박스 화"할 수있는 NSValue 객체가 있으며 런타임에이 유형을 결정해야합니다. 스위프트에서 어떻게 할 수 있습니까?NSValue에서 Swift를 사용하여 상자에 넣은 객체 유형을 아는 방법은 무엇입니까?
if ((value as Any) is CGPoint) {}
else if (((value as Any) is CGRect)) {}
...
value
가 CGPoint를 포함하는 NSValue 객체는, 그것이 만약 절에하지 않습니다
value
을 인쇄했을 때 나는 그것이 결코 절에 들어 가지 않는 이유라고 생각하는
NSPoint: {150, 150}
을 준다.
왜 이런 일이 발생하고 해결하는 방법에 대한 아이디어가 있습니까?
고맙습니다.
NS *와 CG * 사이에는 수신자 부담 브리징이 있습니다. if 절에서 CGPoint 대신 NSPoint를 사용하려고 했습니까? 예 : '값이 NSPoint {' –
인데 컴파일러가 그 비교를 받아들이지 않고 '선언되지 않은 유형의 NSPoint 사용'이 표시됩니다. –