Foundation框架-05 NSNumber和NSValue

原创 2015年07月07日 22:56:05

Foundation框架-05 NSNumber和NSValue


1.NSNumber类

  • NSNumber可以将基本数据类型转换为对象类型
  • 将基本数据类型转换为NSNumer对象类型
    • NSNumber *valueNumber = [NSNumber numberWithInt:(基本数据类型)value];
  • 将对象类型转换为基本数据类型
    • int value = [intNumber intVlue];
  • 基本数据类型转换对象类型简写
    • NSNumber *temp = @(number);
    • NSNumber *temp =@10;
    • // 注意: 如果传入的是变量那么必须在@后面写上(), 如果传入的常量, 那么@后面的()可以省略

2.NSValue类

  • NSNumber是NSValue的子类, 但NSNumber只能包装数字类型,NSValue可以包装任意值
  • 利用NSValue包装常见的结构体
    • CGPoint point = CGPointMake(x,y);
    • NSValue *value = [NSValue valueWithPoint:point];//将point包装为NSValue对象
    • -(NSPoint)pointValue;//从对象中取出此前包转的结构体
  • 利用NSValue包装自定义的结构体
 typedef struct{
        int age;
        char *name;
        double height;
    }Person;
Person p = {30, "lnj", 1.75};
// valueWithBytes: 接收一个指针, 需要传递需要包装的结构体的变量的地址
// objCType: 需要传递需要包装的数据类型
NSValue *pValue = [NSValue valueWithBytes:&p objCType:@encode(Person)];
// 从NSValue中取出自定义的结构体变量
Person res;
[pValue getValue:&res];

3.注意点

  • 由于NSArray\NSDictionary中只能存放OC对象,不能存放int\float\double等基本数据类,如果真想把基本数据(比如int)放进数组或字典中,需要先将基本数据类型包装成OC对象
  • 一般若是包装基本数据类型,使用NSNumber,包装构造类型或自定义构造类型时使用NSValue
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oc-Foundation_05_装箱和开箱——NSNumber_NSValue

Foundation_05_装箱和开箱NSNumber_NSValue 一开箱装箱定义 二NSNumber装箱 三NSNumber开箱 1 代码示例 2 结果 四NSValue 1 代码示例 2 结果...

OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发、Android培训、期待与您交流! ---------------------- 一、NSNumber         前几篇笔记中,小桥复...

黑马程序员——Foundation框架入门:NSNumber,NSValue和NSDate

———-android培训、Java培训、iOS培训,期待与您交流———-一、NSNumber用途:把基本数据类型的数据保存到NSArray或NSDictionary中。赋值int a = 10; N...

Foundation框架—NSNumber、NSValue、NSDate

一、NSNumber 这个类主要是用来封装基本类型的 1. OC中的集合是不允许存入基本类型的,这就需要我们将基本类型进行封装下,然后存进去。这个方法类似于Java中的自动装箱和卸箱,Java中的集...

OutMan——Foundation框架中的常用结构体、NSNumber类和NSValue类

Foundation框架中的常用结构体 NSRange NSPoint / CGPoint NSSize / CGSize NSRect / CGRect NSNumber类和NSValue类

黑马程序员—— Foundation框架NSArray、NSSet、NSDictionary、NSNumber、NSDate、NSValue

——- android培训、java培训、期待与您交流! ———-—NSArrayNSArray:OC数组,它不能存放空值(nil或者0)只能存放OC对象、不能存放非OC对象类型,比如int、stru...

黑马程序员——IOS基础——Foundation框架——字典、集合类、NSNumber/NSValue、NSObject、反射

集合类的总结:  NSArray        ArrayList  NSSet          HashSet  NSDictionary   HashMap ...
  • kldxcr
  • kldxcr
  • 2014-04-21 10:08
  • 1110

iOS Foundation框架 利用NSNumber和NSValue将非OC对象类型数据存放到集合

1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary...

黑马程序员--OC自学笔记---10Foundation、NSFileManager、iOS沙盒、OC结构体、NSNumber、NSValue、NSDate、copy、单例模式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.    NSFileManager   1)      ...

【Foundation】19-NSNumber、NSValue和NSDate

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、NSNumber      1.1 NSNumber的作用:由于集合类型只能存放OC类型数...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)