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

本文深入探讨了Objective-C与Swift两种编程语言在iOS开发领域的应用,包括它们各自的优势、特点以及如何在实际项目中进行选择与运用。

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;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值