iOS 高级开发技巧 1.熟悉Objective-C (三) 多用字面量语法

多用字面量语法


OK,这一篇将是简单一篇,虽然书上写的很多,但是其实觉得没必要。


且看下面这一段代码:

<span style="font-family:Microsoft YaHei;">NSString *someString = @"Aquarius_Moon";</span>

这段代码大家都明白,是定义一个字符串。并且大家从头开始学习使用的时候就是这么用的。

但是仔细想想,任何一个对象的初始化不应该是先 alloc 然后 init 吗?

如果在仔细想想 C 语言中定义一个字符串的代码是什么呢?

<span style="font-family:Microsoft YaHei;">char someString = "Auqarius_Moon";</span>

对啦,有没有很像,其实objective-c中很多东西都是照搬c语言的

这样说来其实下面几种东西也是可以用简单类似c语言的方法来创建的。

这样在类C语言方法面前加一个@的语法,叫字面量语法。

1、NSNumber

<span style="font-family:Microsoft YaHei;">NSNumber *someNumber = @1;</span>

当然,如果有不同数据类型的怎么办?答案就是:直接写!so easy!

<span style="font-family:Microsoft YaHei;">NSNumber *intNumber = @1;
NSNumber *floatNumber = @2.5f;
NSNmuber *doubleNumber = @3.141592654;
NSNumber *boolNumber = @YES;
NSNumber *charNumber = @'a';</span>

下面还有个运算,来看看:

<span style="font-family:Microsoft YaHei;">int x = 5;
float y = 6.5f;
NSNumber *expressionNumber = @(x*y);</span>

2、NSArray

<span style="font-family:Microsoft YaHei;">NSArray *animals = @[@"dog",@"cat",@"tiger",@"monkey",@"mouse"];</span>

怎样取值呢?

<span style="font-family:Microsoft YaHei;">NSString *monkey = animals[3];</span>

这种情况下(后面NSDictionary也有同样的情况),如果你在给数组中添加元素的时候添加的元素是空值,会直接报错。

而使用objective-c的方法,将会少元素。例如:

<span style="font-family:Microsoft YaHei;">NSString *nilStr = nil; 
NSArray *animals = [NSArray alloc] initWithObjectives:@"cat",nilStr,@"dog",nil];//animals = [ @"cat"]</span>

因为这样的初始化方法将会在遇见nil的时候完成创建。因此,我们应该比较推崇的是字面量语法。

因为它能让我们在问题发生的第一时间发现问题,而不是等到真正创建了然后数组越界了以后在去排查。

3、NSDcitionary

<span style="font-family:Microsoft YaHei;">NSDictionary *person = @{@"firstname":@"Li",@"secondname":@"Aquarius",@"age":@22};</span>

当然我们必须要取其中的键值吧:

<span style="font-family:Microsoft YaHei;">NSString *firstName = person[@"firstname"];
NSNumber *age = person[@"age"];</span>

4、可变数组与字典

NSMutableArray *mutableArr = [@[@1,@2,@3,@4,@5] mutableCopy];

mutableArr[1] = @"dog";

NSMutableDic *mutableDic = [@[@"one":@1,@"two":@2,@"three":@3]mutableCopy];

mutableDic[@"one"] = @100;


要点

- 应该使用字面量语法来创建字符串、数值、数组、字典。这样的方法更简明扼要。

- 用字面量语法创建数组或字典的时候若值中有nil,则会抛出异常,因此,注意不要有nil。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值