-
NSArray 等集合類型只能存儲對象。——對象
-
NSNumber 可以將基礎(chǔ)數(shù)據(jù)類型轉(zhuǎn)化為對象。——基礎(chǔ)數(shù)據(jù)類型 ?? 對象
-
NSValue 可以將結(jié)構(gòu)類型轉(zhuǎn)化為對象。——結(jié)構(gòu) ?? 對象
包裝&展開
-
包裝(wrapping):結(jié)構(gòu) ?? 對象。
-
展開(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];
結(jié)構(gòu)體
// 對自定義的結(jié)構(gòu)體封包、解包
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];
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。