NSValue
實(shí)際上NSMunber是NSValue的子類袱院,NSValue可以包裝任意一個(gè)對象,可以用NSValue將struct存到NSArray和NSDictionary中炫欺。
1吞滞、+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;
創(chuàng)建一個(gè)NSValue
value:對象地址
objCType:通常是一個(gè)用來描述對象類型和大小的字符串辱揭,@encode可以接受一個(gè)數(shù)據(jù)類型的名稱自動生成一個(gè)合適的描述字符串
2、- (void)getValue:(void *)value(出參);
從接受value的對象中
提取數(shù)值
提取的數(shù)值背伴,存放在這個(gè)指針?biāo)赶虻膬?nèi)存塊里沸毁。
3、Cocoa提供了常用struct數(shù)據(jù)類型轉(zhuǎn)換成NSValue的便捷方法:
+ (NSValue *)valueWithPoint:(NSPoint)point;
+ (NSValue *)valueWithSize:(NSSize)size;
+ (NSValue *)valueWithRect:(NSRect)rect;
- (NSPoint)pointValue;
- (NSSize)sizeValue;
- (NSRect)rectValue;