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

来源:互联网 发布:js new cookie 编辑:程序博客网 时间:2024/05/17 09:47

多用字面量语法


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。


0 0
原创粉丝点击