oc语法学习(三)(与java对比)

学到这里,基本上对oc的语法已经知道一二了,确实通过与java的对比学习,也加深了印象,基本上能读懂oc的代码了,之后就是要练习加实践了,之后会通过first-blood系列来记录我的每一次实践,以此巩固,积累。

Categories类别

oc中还是给现有的类分类别。

1
2
3
@interface ClassName (CategoryName)
@end
类别的特性

1.一个类别可声明任何类,即使不具备原来的实现源代码
2.任何一个人类别中申明的方法将所有的原始类的实例,以及任何原始类的子类
3.在运行时,一个类别添加方法没有任何区别,一个是通过原来的类。
4.类别中只能添加方法,不可添加新的变量

Posing/冒充

冒充在Mac OS x10.5宣布弃用,此后都不再使用了。

扩展

1
2
3
4
5
6
7
8
9
10
@interface ClassName ()
@end
```
扩展特性
1.扩展可以不声明任何类别,只为类的源代码,我们有原来的执行。
2.私有方法和私有变量,只有特定的类添加一个扩展。
3.扩展内申明的任何方法或变量,不能访问,即使继承类。
#### 协议
##### 1.协议定义

@protocol 协议名 //定义协议
方法定义;
@end

1
##### 2.采用协议

@interface 类名:父类名<协议名1,协议名2,协议名3…>
```

3.协议修饰指令

@required 必须的
@optional可选的

Foundation/基础框架

该框架提供一小部分基本实用工具类,几乎是一个必须使用基础框架。

1.数据存储
NSArray & NSMutableArray

NSArray用来装不可变的对象数组,NSMutableArray用来容纳一个可变数组对象。
对于数据存储,java也是有集合array,并且长度也是可变的,

NSDictionary & NSMutableDictionary

一个用于容纳一个不可变的对象,一个用于容纳一个可变的对象字典。
NSSet & NSMutableSet
一个用来保持一个不变集的不同对象,一个用于容纳一个可变设置的不同对象。

2.文本和字符串

NSCharacterSet表示各种分组NSString和NSScanner类所使用的字符。

3.日期和时间

NSDate 和NSDateFormatter类提供的日期和时间的功能。
和java很相似,进行时间和日期格式的转换。

异常处理

使用NSException类作为基类
@try @catch @finally

文件处理

NSFileManager类实现大多数文件操作功能。

访问网络的URL加载
内存管理

1.手动保留释放或MRR
2.自动引用计数或ARC