我是靠谱客的博主 怡然豌豆,最近开发中收集的这篇文章主要介绍NSNumber和NSValue,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因。

简而言之,NSNumber就是实现基本数据类型与对象类型的互相转换,而NSValue,则是实现结构体对象与对象类型的互相转换。

NSNumber因为是实现基本数据类型与对象类型的互相转换,所以,必须是要有数据类型,而int ,char,BOOL,Float,Long,Integer等等等~都可以进行相应的转换

//1.将基本数据类型转换为NSNumber *类型的对象

    int number = 10;

    NSNumber *num = [NSNumber numberWithInt:number];

 //2.NSNumber *类型的对象还原成基本数据类型

    int result = [num intValue];

其它的类型使用方法也是相同的方法,比如BOOL

    BOOL isYes = YES;

    NSNumber *isY = [NSNumber numberWithBool:isYes];

 

NSValue也是同样的道理

//1.将结构体转换成值对象

    NSRange range = {5,8};

    NSValue *value = [NSValue valueWithRange:range];

/2.将对象转换成原有的结构体

    NSRange newRange = [value rangeValue];

    //结构不能直接打印,用NSStringFromRange结构体转换成字符串打出来

    NSLog(@"%@",NSStringFromRange(newRange));  

 

注意:当然这只是单纯的介绍一样方法的使用,在做项目或者是做一些数据处理,类型转换时还需要注意当时的形式来使用。比如NSNumber可以实现大小的比较,并不是像字符串那样逐字逐的比较。

    NSNumber *number1 = [NSNumber numberWithInt:17];

    NSNumber *number2 = [NSNumber numberWithInt:123];

    NSComparisonResult numberReslu = [number1 compare:number2];

    NSLog(@"numberResult is %ld",numberReslu);//最后比较的结果是 - 1,而不是1,如果是字符串比较的话则是1.

最后

以上就是怡然豌豆为你收集整理的NSNumber和NSValue的全部内容,希望文章能够帮你解决NSNumber和NSValue所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部