Effective Objective-C 2.0 第3条:多用字面量语法,少用与之等价的方法

字面量可以不用使用 [[Class alloc]init] 分配并初始化NSString对象了

1. 字面数值

  • NSNumber* someNumber = @1;
  • NSNumber* intNumber = @1;
  • NSNumber* floatNumber = @2.5f;
  • NSNumber* doubleNumber = @3.1415926;
  • NSNumber* boolNumber = @YES;
  • NSNumber* charNumber = @’a’;

字面数值也适用于下述表达式

int x = 5;
float y = 6.32f;
NSNumber *expressionNumber = @(x * y);

2. 字面量数组

NSArray *animal = [NSArray arrayWithObjects:@“cat”, @“dog”, @“mouse”, @“badger”, nil];

使用字面量

NSArray *animal = @[@“cat”, @“dog”, @“mouse”, @“badger”];
使用字面量可以使用下标
NSString* dog = animals[1];

注:用字面量语法创建数组时要注意,若数组元素对象中有nil,则会抛出异常。
如果不适用字面量创建数组会略掉nil以后的数组元素。

3. 字面量字典

一般定义字典时采用<对象><键>添加元素

NSDicationary *personData = [NSDictionary dictionaryWithObjectsAndKeys:
@“Matt”, @“firstName”, @“Galloway”, @“lastName”, [NSNumber numberWithInt:28], @“age”, nil ];

使用字面量:

NSDicationary *personData = @{@“firstName”:@”Matt”, @“lastName”:@“Galloway”, @“age”: @28};
适用下标(可以读)
NSString* lastName = personData[@“lastName"];

注:因为字典中的对象和键必须都是OC对象,所以不能把整数28直接放进去,但是适用字面量可以轻松实现这一点。另一点好处同字面量数组相同。

4. 可变数组和字典

通过取下标操作,可以访问数组中某个下标或字典中某个键所对应的元素。如果数组与字典对象是可变的,那么可以通过下标修改其中的元素值。

5. 局限性

使用字面量创建出来的字符串、数组、字典对象都是不可变的。若想使用可变版本对象,需要复制一份。

NSMutableArray *mutable = [@[@1, @2, @3, @4, @5] mutableCopy];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值