zoukankan      html  css  js  c++  java
  • iOS学习14之OC NSNumber + NSValue

    1、NSNumber

     数值类

     作用:实现基本数据类型OC对象类型相互转化

     1> NSNumber创建对象

    1 // 初始化方法
    2 NSNumber *num1 = [[NSNumber alloc] initWithInt:39];
    3 // 类方法
    4 NSNumber *num2 = [NSNumber numberWithInteger:10000];
    5 // 字变量
    6 NSNumber *num3 = @100;

     NSNumber字面量

    1 // 常量:
    2 NSNumber *intNumber = @38;
    3 NSNumber *charNumber = @'w';
    4 // 变量:
    5 int age = 18;
    6 NSNumber *ageNumber = @(age);
    7 char gender = 'w';
    8 NSNumber *genderNumber = @(gender);

     2> NSNumber常用方法

      ① 其他类型转化为NSNumber

       int类型转化为NSNumber类型的对象

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

       float类型转化为NSNumber类型的对象       

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

       char类型转化为NSNumber类型的对象       

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

       NSNumber转化为其他类型

       NSNumber类型对象转化为int类型的数据

       @property (readonly) int intValue;

       NSNumber类型对象转化为float类型的数据

       @property (readonly) float floatValue;

       NSNumber类型对象转化为char类型的数据

       @property (readonly) char charValue;

    1 int a = [num2 intValue];
    2 double b = [num1 doubleValue];
    3 NSLog(@"%d,%f", a, b);
    4 NSLog(@"%@", num1);

    2、NSValue

     完成 结构体对象类型 的互转。

     1> NSRange类型转化为NSValue类型的对象

      + (NSValue *)valueWithRange:(NSRange)range;

      NSPoint, NSRect, NSSize, CGSize, CGPoint, CGRect结构体类型 转化为NSValue类型的对象,使用方法同上,用法略!
      注: CGSize, CGPoint, CGRect是UI中使用的结构体类型。

     2> NSValue类型转化为NSRange类型的结构体变量

      @property (readonly) NSRange rangeValue;

      NSValue结构体类型转化为NSPoint, NSRect, NSSize, CGSize, CGPoint, CGRect类型的结构体变量,使用方法同上,用法略!

    总结:

     NSNumbeNSValue主要是为了完成基本数据类型,结构体对象 的互转,便于与collection配合使 (collection — — 集合)。

  • 相关阅读:
    sqlalchemy 查询姿势总结
    sqlalchemy 常用总结
    rsyslog 移植与配置方案介绍
    软件设计随想录
    C语言面对对象设计模式汇编
    关于linux kernel slab内存管理的一点思考
    linux PMBus总线及设备驱动分析
    Linux x86_64 APIC中断路由机制分析
    单板控制领域模型设计与实现
    Linux mips64r2 PCI中断路由机制分析
  • 原文地址:https://www.cnblogs.com/gfxxbk/p/5311830.html
Copyright © 2011-2022 走看看