编写高质量iOS代码的52个有效方法1-1
一、使用向前声明(@class)的好处
1、有效减少编译器编译的时间;
2、有效避免循环引用;
二、字面量语法的好处
1、字面常量
精简、可用于所有数据类型,如:
NSNumber *intNumber = @1;
NSNumber *floatNumber = @2.5f;
NSNumber *doubleNumber = @3.14159;
NSNumber *boolNumber = @YES;
NSNumber *charNumber = @'a';
2、字面量数组
NSArray *animals = @[@"dog",@"cat",@"mouse"];
NSString *dog = @[0];
需要注意的是,当用字面量语法创建的数组中的某一个对象为nil时,则会抛出异常,如:
id object1 = /*............*/;
id object2 = /*............*/; (为nil)
id object3 = /*............*/;
NSArray *arrayA = [NSArray arrayWithObjects:object1, object2, object3, nil];
NSArray *arrayB = @[object1, object2, object3];
arrayA中只含有一个元素,因为arrayWithObjects:会依次处理各个参数,知道碰到nil为止,由于object2为nil,所以该方法会提前结束;
arrayB会抛出异常,便于代码审查;
3、字面量字典
NSDictionary *personData = [NSDictionary dictionaryWithObjectsAndKeys:@"mark", @"name", [NSNumer numberWithInt:28], @"age", nil];<对象><键>
NSDictionary *personData = @{@"name":@"mark", @"age":@28};
如果遇到对象为nil,也会抛出异常;
4、可变数组与字典
[mutableArray replaceObjectAtIndex:1 withObjrct:@"dog"];
[mutableDictionary setObject:@"mark" forKey:@"name"];
对比:
mutableArray[1] = @"dog";
mutableDictionary[@"name"] = @"mark";
5、要点:
*应该使用字面量语法来创建字符串、字典、数组、数值,这样更加简明扼要;
*应该通过取下标操作访问数组下标或字典的键所对应的元素;
*用字面量语法创建字典或者数组时,若值中有nil,则会抛出异常。因此务必保证值中不含nil;
编写高质量iOS代码的52个有效方法1-1的更多相关文章
- 编写高质量iOS代码的52个有效方法2-1
一.变量的定义位置(用{}声明示例变量或者用@property属性声明实例变量) 1.用{}声明示例变量: 此方法生命的实例变量,编译器在编译时,会自动计算其偏移量(表示该变量距离存放对象的内存区域的 ...
- 编写高质量JavaScript代码的68个有效方法
简介: <Effective JavaScript:编写高质量JavaScript代码的68个有效方法>共分为7章,分别涵盖JavaScript的不同主题.第1章主要讲述最基本的主题,如版 ...
- Effective Python之编写高质量Python代码的59个有效方法
这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码 ...
- 编写高质量JS代码的68个有效方法(八)
[20141227]编写高质量JS代码的68个有效方法(八) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(七)
[20141220]编写高质量JS代码的68个有效方法(七) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(六)
[20141213]编写高质量JS代码的68个有效方法(六) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(四)
[20141129]编写高质量JS代码的68个有效方法(四) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(三)
[20141030]编写高质量JS代码的68个有效方法(三) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
- 编写高质量JS代码的68个有效方法(二)
[20141011]编写高质量JS代码的68个有效方法(二) *:first-child { margin-top: 0 !important; } body>*:last-child { ma ...
随机推荐
- Kali命令集
转载自:http://www.shiyanbar.com/questions/980 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显 ...
- mac nodejs安装
很久没有配置开发环境了,刚换了新电脑,正好借机会重新配置一下node相关的开发环境 安装 nvm :Node Version Manager 由于nodejs版本更新迭代较快,而不同版本间的差异又很大 ...
- CODEFORCES-PROBLEMSET
1A 水题 然而看不仔细爆int了 c++ #include <bits/stdc++.h> using namespace std; typedef long long ll; in ...
- action中list传到JSP中取不到值的问题
今天遇到了这个问题 action中list传到JSP中取不到值 搞了半天是因为我在JSP中取值的的时候 <s:iterator value="shlist" var=&qu ...
- 解决 spring mvc 3.+ 结合 hibernate3.+ 使用<tx:annotation-driven>声明式事务无法提交的问题
spring mvc使用注解方式:service使用@service注解 事务使用@Transactional 事务配置使用 <tx:annotation-driven transaction- ...
- Foxit Reader(福昕PDF阅读器) v4.3.1.218 绿色专业版
软件名称:Foxit Reader(福昕PDF阅读器) v4.3.1.218 绿色专业版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 4.40MB 图片 ...
- Symfony没有安装依赖_PHP Fatal error: require(): Failed opening required
$ php bin/console server:run PHP Warning: require(D:\home\workspace\pd\app/../vendor/autoload.php): ...
- webp图片详解
WebP(发音 weppy),是一种支持有损压缩和无损压缩的图片文件格式,派生自图像编码格式 VP8.根据 Google 的测试,无损压缩后的 WebP 比 PNG 文件少了 45% 的文件大小,即使 ...
- [河南省ACM省赛-第四届] 表达式求值(nyoj 305)
栈的模拟应用: #include<iostream> #include<cstdio> #include<cstring> #include<string&g ...
- js 判断是不是手机访问
方法一: if(window.navigator.userAgent.toLowerCase().indexOf('mobile')==-1) { alert("pc端") } e ...