Object-c基础编程学习笔记-各种数值

1、NSNumber

我们知道,NSArray和NSDIctionary只能存储对象,而不能直接存储像int,float和struct,但是我们可以使用对象来封装基本数值。

包装:

+ (NSNumber *)numberWithChar:(char) value;
+ (NSNumber *)numberWithInt:(int) value;
+ (NSNumber *)numberWithFloat:(float) value;
+ (NSNumber *)numberWithBool:(BOOL) value;
Number *number;
number = [NSNumber numberWithInt:42];

拆包

- (char) charValue
- (int) intValue;
- (float) floatValue;
- (BOOL) boolValue;
- (NSString *)stringValue;

2、NSValue

实际上,NSNumber 是 NSValue的子类

下面演示一下,将结构体包装的例子

+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *) type;

NSRect rect = NSMakeRect(1,2,3,4);
NSValue * value = [NSValue valueWithBates:&rect objCType:@"encode(NSRect)"];

而拆包是这样的

value = [array objectAtIndex:0];
[value getValue:&rect];

而Cocoa也提供了便捷的方式

+  (NSValue *) valueWithPoint:(NSPoint) point;
+  (NSValue *) valueWithSize: (NSSize) size;
+  (NSValue *) valueWithRect: (NSRect) rect;

- (NSPoint) pointValue;
- (NSSize) sizeValue;
- (NSRect) rectValue;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值