字面量

作者: gpylove | 来源:发表于2019-10-26 16:48 被阅读0次

        在读《编写高质量iOS与OS X代码的52个有效方法》这本书时,才发现了一个自己一直遗漏的问题,NSArray的初始化方法initWithObjects:(对应的类方法arrayWithObjects:)和NSDictionary的初始化方法initWithObjectsAndKeys:(对应的类方法dictionaryWithObjectsAndKeys:),创建出来的的对象可能不是你期望的。

比如数组方法(摘抄自上书)

id object1=@"1234";

id object2=nil;

id object3=@"4567";

NSArray *arrayA=[NSArray array WithObjects:object1,object2,object3,nil];

NSArray *arrayB=@[object1,object2,object3];

         按字面量语法创建数组 arrayB 时会抛出异常。arrayA 虽然能创建出来,但是其中却只含有 object1 一个对象。原因在于,“ arrayWithObjects:”方法会依次处理各个参数,直到发现 nil 为止,由于 object2 是 nil,所以该方法会提前结束。

        致使用上述方法写的数组或者字典可能所包含的不是你所期望的,而且还不会抛出错误,所以用这两种方法创建数组和字典时要慎重。

相关文章

  • 字面量

    字面量: 1、数字字面量: 1.1、整数: 10进制:普通数字就是十进制 8进制:以0开头(...

  • 字面量

  • 字面量

    字面量 常见字面量的默认类型 可以通过typealias修改字面量的默认类型 swift自带类型之所以能够通过字面...

  • 字面量

    字面量(Literal) 上面代码中的10、false、"Jack"就是字面量 常见字面量的默认类型 public...

  • 字面量

    在读《编写高质量iOS与OS X代码的52个有效方法》这本书时,才发现了一个自己一直遗漏的问题,NSArr...

  • Scala函数定义

    函数字面量 常说的字面量有:整型字面量 val i = 123浮点型字面量 val i = 3.14布尔型字面量 ...

  • JavaForAndroid-03

    一、字面量int i = 0; //0就是字面量数值型变量字面量:1.整数字面量为整型(int)2.小数字面量为双...

  • 字面量转换

    在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。Swift 为我...

  • Swift 字面量

    所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。比如在下...

  • 字面量数组

    数组是常用的数据结构,如果不适用字面量语法,那么就要这样来创建数组: NSArray *animals = [NS...

网友评论

      本文标题:字面量

      本文链接:https://www.haomeiwen.com/subject/cmayvctx.html