zoukankan      html  css  js  c++  java
  • Objective

    在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是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.

  • 相关阅读:
    PostGIS常用SQL
    PostGIS相关数据类型及内置函数介绍
    基于GeoTools做GeoJson,PostGIS,Shapefile的转换
    如何使用GeoTools
    JavaScript 循环
    jquery 层级选择器
    jquery 表单选择
    js 字符串操作
    js对象
    js函数 作用域 闭包 回调
  • 原文地址:https://www.cnblogs.com/xueyao/p/5189684.html
Copyright © 2011-2022 走看看