NSNumber与NSValue封装非object类型

在object-c中,集合只能存放object,对于基本类型如int、float、bool、char和struct如CGPoint、CGSize、CGRect等,必须封装成object。

int、float、bool、char等可以用NSNumber来封装,NSNumber定义在NSValue头文件中,继承于NSValue。对应的装箱方法是:

- (id)initWithChar:(char)value;

- (id)initWithUnsignedChar:(unsignedchar)value;

- (id)initWithShort:(short)value;

- (id)initWithUnsignedShort:(unsignedshort)value;

- (id)initWithInt:(int)value;

- (id)initWithUnsignedInt:(unsignedint)value;

- (id)initWithLong:(long)value;

- (id)initWithUnsignedLong:(unsignedlong)value;

- (id)initWithLongLong:(longlong)value;

- (id)initWithUnsignedLongLong:(unsignedlong long)value;

- (id)initWithFloat:(float)value;

- (id)initWithDouble:(double)value;

- (id)initWithBool:(BOOL)value;

- (id)initWithInteger:(NSInteger)value NS_AVAILABLE(10_5,2_0);

- (id)initWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5,2_0);


+ (NSNumber *)numberWithChar:(char)value;

+ (NSNumber *)numberWithUnsignedChar:(unsignedchar)value;

+ (NSNumber *)numberWithShort:(short)value;

+ (NSNumber *)numberWithUnsignedShort:(unsignedshort)value;

+ (NSNumber *)numberWithInt:(int)value;

+ (NSNumber *)numberWithUnsignedInt:(unsignedint)value;

+ (NSNumber *)numberWithLong:(long)value;

+ (NSNumber *)numberWithUnsignedLong:(unsignedlong)value;

+ (NSNumber *)numberWithLongLong:(longlong)value;

+ (NSNumber *)numberWithUnsignedLongLong:(unsignedlong long)value;

+ (NSNumber *)numberWithFloat:(float)value;

+ (NSNumber *)numberWithDouble:(double)value;

+ (NSNumber *)numberWithBool:(BOOL)value;

+ (NSNumber *)numberWithInteger:(NSInteger)value NS_AVAILABLE(10_5,2_0);

+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5,2_0);


对应的拆箱方法是:

- (char)charValue;

- (unsignedchar)unsignedCharValue;

- (short)shortValue;

- (unsignedshort)unsignedShortValue;

- (int)intValue;

- (unsignedint)unsignedIntValue;

- (long)longValue;

- (unsignedlong)unsignedLongValue;

- (longlong)longLongValue;

- (unsignedlong long)unsignedLongLongValue;

- (float)floatValue;

- (double)doubleValue;

- (BOOL)boolValue;

- (NSInteger)integerValue NS_AVAILABLE(10_5,2_0);

- (NSUInteger)unsignedIntegerValue NS_AVAILABLE(10_5,2_0);

- (NSString *)stringValue;


NSValue对struct封装的方法定义在UIGeometry.h头文件中,对应的装箱方法有:

+ (NSValue *)valueWithCGPoint:(CGPoint)point;

+ (NSValue *)valueWithCGSize:(CGSize)size;

+ (NSValue *)valueWithCGRect:(CGRect)rect;

+ (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform;

+ (NSValue *)valueWithUIEdgeInsets:(UIEdgeInsets)insets;

+ (NSValue *)valueWithUIOffset:(UIOffset)insetsNS_AVAILABLE_IOS(5_0);


对应的拆箱方法如下:

- (CGPoint)CGPointValue;

- (CGSize)CGSizeValue;

- (CGRect)CGRectValue;

- (CGAffineTransform)CGAffineTransformValue;

- (UIEdgeInsets)UIEdgeInsetsValue;

- (UIOffset)UIOffsetValueNS_AVAILABLE_IOS(5_0);




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值