当前位置: 代码迷 >> 综合 >> Effective Object_C 2.0 编写高质量ios与OS X代码的52个有效方法之一
  详细解决方案

Effective Object_C 2.0 编写高质量ios与OS X代码的52个有效方法之一

热度:34   发布时间:2023-12-22 09:04:20.0

第1章 熟悉Object-C

第1条:了解Object-C语言的起源

1.面向对象语言

2."消息结构"而非“函数调用”

3.使用消息结构的语言,其运行时所应执行的代码由运行环境决定;

   使用函数调用的语言,其运行时所应执行的代码由编译器决定。

4.针对多态来说,函数调用语言需要查虚函数表确定执行哪个函数;

消息调用语言在运行时才去查需要执行的方法,编译器甚至不关系接收消息的对象是何种类型,该过程被称为“动态绑定”。

5.“运行期组件”

第二条 在类的头文件尽量少引用其他头文件

除非有必要,否则不要引进头文件。在头文件中用的类使用向前声明;

无法使用向前声明的时候,尽量把该类单独放在一个头文件中。

第三条 多用字面量语法、少用与之等价的方法

从Object-C 1.0起,可以使用“字面量”,缩短代码长度,更加易读。

字面量字符串

NSString* string = @“Effective Object-C”;

字面量数值

NSNumber* intNum = @1;

int x = 5;

float y = 6.25f;

NSNumber* expressionNumber = @(x*y);

字面量数组

NSArray *animals = @[@"cat",@"dog",@"mouse",@"badger"];

下标访问或者objectAtIndex都可以

字面量字典

NSDictionary* personData = @{@“firstName”:@“Matt”,@"lastName":@"Galloway",@"age":@28};

访问方式:

NSString* lastName = [personData objectForkey:@"lastName"];

字面量语法:

NSSting* lastName = personData[@"lastName"];

局限性

字面量语法,除了字符串以外,所创建出来的对象必须属于Foundation框架才行。这些类的自定义子类,则无法用字面量语法创建其对象。

使用字面量语法创建出来的字符串、数组、字典对象都是不可变的。若想要可变版本的对象,则需要复制一份:NSMutableArray* mutable = [@[@1,@3,@,2,@4] mutableCopy];会多调用一个方法,再创建一个对象,不过使用字面量语法好处还是多余缺点。

要点:

1.应该使用字面量语法来创建字符串、数值、数组、字典。与创建此类兑现的常规方法相比,这么做更加简明扼要。

2.应该通过取下标操作来访问数组下标或字典中的键所对应的元素。

3.用字米娜了语法创建字典和数组时,若值中有nil,则会抛出异常。因此,务必保证值里不含nil.