zoukankan      html  css  js  c++  java
  • OC中的类型强制转换

    在Objective-C中,以数字格式组成的字符串经常需要转换为NSNumber对象后再使用。例如有一个字符串对象@"111.22",需要转为NSNumber对象,最简单的方法就是这样:[NSNumber numberWithFloat:[@"111.22" floatValue]]。

    这个方法先使用NSString的floatValue方法将字符串转成float,再使用NSNumber的numberWithFloat方法将结果转成NSNumber。但它有一个前提条件,就是输入的字符串一定要以数字组成。如果发现有非数字字符,则直接导致程序出错。因此,它需要事先判断,保证字符串能转成NSNumber。

    根据新的要求,将转换操作过程修改一下,代码如下所示:

        NSString *ss=@"224.34129";
        id result;
        NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
        if ([f numberFromString:ss])
        {
            result=[NSNumber numberWithFloat:[ss floatValue]];
        }
        else
        {
            result=ss;
        }
        NSLog(@"%.2f",[result floatValue]);

    如此一改,功能倒是没问题了,只是看上去有一些累赘。我们知道,代码越简洁,出bug的概率就越低,代码也越显得优雅。再做修改,如下所示:
     
        NSString *ss=@"224.34129";
        id result;
        result=[f numberFromString:ss];
        if(!(result))
        {
            result=ss;
        }
        NSLog(@"%.2f",[result floatValue]);


    还有其他的转换函数,如
    1、字符串拼接
     NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB];

    2、字符串转int
    int intString = [newString intValue];

    3、int转字符串
    NSString *stringInt = [NSString stringWithFormat:@"%d",intString];

    4、字符串转float
     float floatString = [ newString floatValue];

    5、float转字符串
    NSString *stringFloat = [NSString stringWithFormat:@"%f",intString];
        
    通过这些转换操作,可以理解NSNumber、NSString、float三个类型的关系和转换方法。int/float是Objective-C的原始类型,而NSNumber和NSString则是类。

    6,其他类型强制转换成字符串。

    NSString *createdStr = [NSStringstringWithFormat:@"%@",[myData valueForKey:@"created"]];

    [myData valueForKey:@"created"]为NSDate类型。

     

    7,

        NSString *str = [myData valueForKey:@"theData"];

    //    将字符串转换成整数

        int number = [str intValue];

    //    再将整数转换成字符串

        NSString *Tstr = [NSStringstringWithFormat:@"%d", number];

  • 相关阅读:
    C++ 类的静态数据成员&静态成员函数
    C++构造函数
    世界末日的梦
    C++ const关键词
    平安夜的礼物
    C++ 友元
    D3D中的光照
    C++网络编程(卷1):学习笔记(一)
    Python 教程阅读笔记(四):数据结构
    Python 教程阅读笔记(三):更多控制流工具
  • 原文地址:https://www.cnblogs.com/guanliyang/p/3783725.html
Copyright © 2011-2022 走看看