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。
- iOS 高级开发技巧 1.熟悉Objective-C (三) 多用字面量语法
- Effetive Objective - C 1.Objective 3.多用字面量语法
- iOS 高级开发技巧 1.熟悉Objective-C (四) 多用类型常量 少用#define预处理命令
- iOS 高级开发技巧 1.熟悉Objective-C (一) 了解Objective-C语言的起源
- IOS:Objective-C字面量
- IOS:Objective-C字面量
- IOS:Objective-C字面量
- iOS:Objective-C字面量
- 【IOS沉思录】Objective-C中的糖衣语法(字面量)
- Objective-C语法之字面量语法
- 高效Objective-C语法-字面量语法
- iOS 高级开发技巧 1.熟悉Objective-C (五) 用枚举表示状态、选项、状态码
- Objective-C字面量语法总结
- Objective-c中使用字面量语法
- Objective-C 中的字面量语法
- Objective-C字面量语法总结
- Effective Objective-C 2.0 第3条:多用字面量语法,少用与之等价的方法
- iOS字面量语法
- C# MVC 自定义分页Helper扩展
- 十步完全理解SQL
- 抽空把大学上了
- The number of ponds——DFS
- 存储过程与触发器的应用
- iOS 高级开发技巧 1.熟悉Objective-C (三) 多用字面量语法
- Node crypto crc32 加密
- NAT工作原理深入学习NAT工作原理 我们单位中的电脑很多,组成了一个局域网,网络中只有一个电脑和外网(Internet)相连,当然有一个外网地址,但仅仅一个。我以前一直不明白,我们局域网的电脑均能上
- mfc操作浏览器(1)——执行超链接按钮
- 对一个长度为100000条指令的程序进行集成测试期间记录如下面的数据: (A)7月1日集成测试开始没有发现错误 (B)8月2日总共改正了100个错误,此时MTTF=0.4H (C)9月1日:总共改正3
- CRM助零售行业客户关系经营
- poj1151 Atlantis(hh版 扫描线)
- iOS -NSKeyedArchiver保存数据
- Apache Web 服务器配置CGI程序,执行Python、Perl脚本