NSNumber讲解之一——NSNumber封装数值型数据
2016-01-08 00:13
477 查看
学习目标
1. 掌握 NSNumber
2. 掌握 + numberWithXxx:、 - xxxValue、
3. 了解 - initWithXxx
4. 了解 NSValues
学习过程
1. NSNumber用于封装OC基本数值型数据类型:
char, unsigned char, short, unsigned short, int, unsigned int,
long, unsigned long, long long, unsigned long long, float, double,
BOOL, NSInteger, NSUInteger (提示BOOL型也是数值型,它只有1与0两个值)
2.+ numberWithXxx: NSNumber的类方法
- xxxValue NSNumber的实例方法
- initWithXxx
NSNumber的实例方法
以上xxx表示数值类型
原代码:
@interface NSNumber (NSNumberCreation)
- (NSNumber *)initWithChar:(char)value;
- (NSNumber *)initWithUnsignedChar:(unsigned char)value;
- (NSNumber *)initWithShort:(short)value;
- (NSNumber *)initWithUnsignedShort:(unsigned short)value;
- (NSNumber *)initWithInt:(int)value;
- (NSNumber *)initWithUnsignedInt:(unsigned int)value;
- (NSNumber *)initWithLong:(long)value;
- (NSNumber *)initWithUnsignedLong:(unsigned long)value;
- (NSNumber *)initWithLongLong:(long long)value;
- (NSNumber *)initWithUnsignedLongLong:(unsigned long long)value;
- (NSNumber *)initWithFloat:(float)value;
- (NSNumber *)initWithDouble:(double)value;
- (NSNumber *)initWithBool:(BOOL)value;
- (NSNumber *)initWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);
- (NSNumber *)initWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
+ (NSNumber *)numberWithShort:(short)value;
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
+ (NSNumber *)numberWithLong:(long)value;
+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
+ (NSNumber *)numberWithLongLong:(long long)value;
+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long 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);
@end
示例:
//main.m
#import <Foundation/Foundation.h>
/*演示+ numberWithXxx:、 - xxxValue*/
void f1() {
NSNumber* p1 = [NSNumber numberWithInt:23];
int i = [p1 intValue];
NSLog(@"%d", i); //23
NSNumber* p2 = [NSNumber numberWithBool:NO];
BOOL b = [p2 boolValue];
NSLog(@"%d", b); //0
NSNumber* p3 = [NSNumber numberWithChar:'a'];
char c = [p3 charValue];
NSLog(@"%c", c);//a
NSInteger x1 = 100;
NSNumber* p4 = [NSNumber numberWithInteger:x1];
NSInteger x2 = [p4 integerValue];
NSLog(@"%ld", x2);//100
}
/*演示initWithXxx (了解)*/
void f2() {
NSNumber *number1 = [[NSNumber alloc] initWithInt:1000];
int i = [number1 intValue];
NSLog(@"%d", i);//1000
}
3. NSValues除了可以封装NSNumber封装的类型外,还可以封装
指针,结构体等任何自定义类型。具体知识点会在后期课程中学习
集合时再讲解
4. 凝问:NSNumber是否只能封装数值型的基本数据类型?
答: 是的。
5. 凝问:什么要使用NSValues与NSNumber?
答:1.为集合时使用
2.为调用方法使用
3.为系统封装的一些方法传参使用
1. 掌握 NSNumber
2. 掌握 + numberWithXxx:、 - xxxValue、
3. 了解 - initWithXxx
4. 了解 NSValues
学习过程
1. NSNumber用于封装OC基本数值型数据类型:
char, unsigned char, short, unsigned short, int, unsigned int,
long, unsigned long, long long, unsigned long long, float, double,
BOOL, NSInteger, NSUInteger (提示BOOL型也是数值型,它只有1与0两个值)
2.+ numberWithXxx: NSNumber的类方法
- xxxValue NSNumber的实例方法
- initWithXxx
NSNumber的实例方法
以上xxx表示数值类型
原代码:
@interface NSNumber (NSNumberCreation)
- (NSNumber *)initWithChar:(char)value;
- (NSNumber *)initWithUnsignedChar:(unsigned char)value;
- (NSNumber *)initWithShort:(short)value;
- (NSNumber *)initWithUnsignedShort:(unsigned short)value;
- (NSNumber *)initWithInt:(int)value;
- (NSNumber *)initWithUnsignedInt:(unsigned int)value;
- (NSNumber *)initWithLong:(long)value;
- (NSNumber *)initWithUnsignedLong:(unsigned long)value;
- (NSNumber *)initWithLongLong:(long long)value;
- (NSNumber *)initWithUnsignedLongLong:(unsigned long long)value;
- (NSNumber *)initWithFloat:(float)value;
- (NSNumber *)initWithDouble:(double)value;
- (NSNumber *)initWithBool:(BOOL)value;
- (NSNumber *)initWithInteger:(NSInteger)value NS_AVAILABLE(10_5, 2_0);
- (NSNumber *)initWithUnsignedInteger:(NSUInteger)value NS_AVAILABLE(10_5, 2_0);
+ (NSNumber *)numberWithChar:(char)value;
+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value;
+ (NSNumber *)numberWithShort:(short)value;
+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value;
+ (NSNumber *)numberWithInt:(int)value;
+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value;
+ (NSNumber *)numberWithLong:(long)value;
+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value;
+ (NSNumber *)numberWithLongLong:(long long)value;
+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long 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);
@end
示例:
//main.m
#import <Foundation/Foundation.h>
/*演示+ numberWithXxx:、 - xxxValue*/
void f1() {
NSNumber* p1 = [NSNumber numberWithInt:23];
int i = [p1 intValue];
NSLog(@"%d", i); //23
NSNumber* p2 = [NSNumber numberWithBool:NO];
BOOL b = [p2 boolValue];
NSLog(@"%d", b); //0
NSNumber* p3 = [NSNumber numberWithChar:'a'];
char c = [p3 charValue];
NSLog(@"%c", c);//a
NSInteger x1 = 100;
NSNumber* p4 = [NSNumber numberWithInteger:x1];
NSInteger x2 = [p4 integerValue];
NSLog(@"%ld", x2);//100
}
/*演示initWithXxx (了解)*/
void f2() {
NSNumber *number1 = [[NSNumber alloc] initWithInt:1000];
int i = [number1 intValue];
NSLog(@"%d", i);//1000
}
3. NSValues除了可以封装NSNumber封装的类型外,还可以封装
指针,结构体等任何自定义类型。具体知识点会在后期课程中学习
集合时再讲解
4. 凝问:NSNumber是否只能封装数值型的基本数据类型?
答: 是的。
5. 凝问:什么要使用NSValues与NSNumber?
答:1.为集合时使用
2.为调用方法使用
3.为系统封装的一些方法传参使用
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- Objective-C的内省(Introspection)用法小结
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- 举例详解iOS开发过程中的沙盒机制与文件
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- 分享一个iOS下实现基本绘画板功能的简单方法