将CGPoint、CGSize、CGRect等放进数组的方法

在oc中,数组中只能存放NSObject类型的数据,所以如果将CGPoint、CGSize、CGRect这些数据存到数组中,我们需要将他们转换为对象类型才可以,

可以借助NSValue,它是用来将基本变量转变为对象的一个常用对象,NSNumber就是继承于它.

//这是将CGPoint、CGSize、CGRect等转变成NSValue
+ (NSValue *)valueWithCGPoint:(CGPoint)point; + (NSValue *)valueWithCGVector:(CGVector)vector; + (NSValue *)valueWithCGSize:(CGSize)size; + (NSValue *)valueWithCGRect:(CGRect)rect; + (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform; + (NSValue *)valueWithUIEdgeInsets:(UIEdgeInsets)insets; + (NSValue *)valueWithUIOffset:(UIOffset)insets NS_AVAILABLE_IOS(5_0);

//这是将NSValue
转变成CGPoint、CGSize、CGRect
- (CGPoint)CGPointValue;
- (CGVector)CGVectorValue;
- (CGSize)CGSizeValue;
- (CGRect)CGRectValue;
- (CGAffineTransform)CGAffineTransformValue;
- (UIEdgeInsets)UIEdgeInsetsValue;
- (UIOffset)UIOffsetValue NS_AVAILABLE_IOS(5_0);

参考资料一

参考资料二

原文地址:https://www.cnblogs.com/gaoxiaoniu/p/5566908.html