-
NSArray 等集合類型只能存儲對象。——對象
-
NSNumber 可以將基礎數據類型轉化為對象识腿。——基礎數據類型 ?? 對象
-
NSValue 可以將結構類型轉化為對象造壮《伤希——結構 ?? 對象
包裝&展開
-
包裝(wrapping):結構 ?? 對象骂束。
-
展開(unwrapping):從對象中解出基本類型。
NSValue 方法
+ (NSValue *)valueWithPoint:(NSPoint)point;
+ (NSValue *)valueWithSize:(NSSize)size;
+ (NSValue *)valueWithRect:(NSRect)rect;
+ (NSValue *)valueWithEdgeInsets:(NSEdgeInsets)insets NS_AVAILABLE(10_10, 8_0);
CGPoint
// NSPoint
NSPoint somePoint = NSMakePoint(100, 100);
NSValue *point = [NSValue valueWithPoint:somePoint];
// CGPoint
NSValue *myPointValue = [NSValue valueWithPoint:CGPointMake(10, 10)];
CGPoint point = [myPointValue pointValue];
CGSize
// 大小
NSValue *mySizeValue = [NSValue valueWithSize:CGSizeMake(375, 664)];
CGSize size = [mySizeValue sizeValue];
CGRect
// 矩形區(qū)域
NSValue *myRectValue = [NSValue valueWithRect:CGRectMake(0, 0, 375, 664)];
CGRect rect = [myRectValue rectValue];
NSRange
// 范圍
NSValue *myRangeValue = [NSValue valueWithRange:NSMakeRange(0, 10)];
NSRange range = [myRangeValue rangeValue];
結構體
// 對自定義的結構體封包成箫、解包
struct WXpoint {
float a;
float b;
};
struct WXpoint p = {10,50};
// 封包
NSValue *pointvalue1 = [NSValue value:&p
withObjCType:@encode(struct WXpoint)];
// 解包
struct WXpoint p2;
[pointvalue1 getValue:&p2];
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者