zoukankan      html  css  js  c++  java
  • 关于NSNumber的面试题。。。

    面试题:以下code 编译是否有误?

            NSMutableArray  *myArray = [[NSMutableArray alloc] init ];

            [myArray addObject: 18 ];

    解答:

          这样是会引发编译错误的,因为NSMutableArray中所要存放的是一个对象,而‘18’是基本数据类型,这该怎么解决呢? 就需要用到 NSNumber。

         这样写就正确了:

          NSMutableArray  *myArray = [[NSMutableArray alloc] init ];

          [myArray addObject: [NSNumber numberWithInt:18] ];

          

    关于NSNumber与NSInteger的区别:

          NSNumber 是类;

          NSInteger是基本类型,那么使用起来就非常简单。 声明一个变量, NSInteger   oneInt;  直接赋值就可以了。 例如: oneInt=18;

          NSNumber 这个类型,从字面上看,它属于char、int、long、double 中的任意一种类型。 这就是“类”的强大 —— 抽象。既然NSNumber 是类,就应该遵循“类”的规则。 通过类方法来创建、初始化一个类的对象。 

         NSNumber 所拥有的类方法,如下:

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

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

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

               + (NSNumber*)numberWithBool: (BOOL) value;

    将基本类型数据封装到NSNumber中后,就可以通过下面的实例方法重新获取它:

               - (char)charValue;

               - (int)intValue;

               - (float)floatValue;

               - (BOOL)boolValue;

               - (NSString*)stringValue;

     

    注意:

         Objective-C 支持的类型有两种:基本类型 和  类。

          基本类型,如同C 语言中的 int 类型一样,拿来就可以直接用。 而类在使用时,必须先创建一个对象,再为对象分配空间,接着做初始化和赋值。 类的初始化,需用类自身的方法 (类方法)。 代码中所创建的对象,使用完后,必须释放。

  • 相关阅读:
    [转]The Machine SID Duplication Myth (and Why Sysprep Matters)
    The Machine SID Duplication Myth (and Why Sysprep Matters)
    [转]Shell(Bash) mysql数据库操作
    [转]GNU Sourcehighlight 语法高亮代码
    [原]DRBD双主模式问题
    mpstat
    DRBD试用
    drbd双主模式问题
    虚IP的添加和删除
    为什么5%的技术人员开发效率是其他95%的20倍?
  • 原文地址:https://www.cnblogs.com/jinxin680/p/4910131.html
Copyright © 2011-2022 走看看