初学者必备:Objective-C学习文档 |
本文标签:Objective-C 对象 Objective-C学习文档是本文要介绍的内容,主要介绍的有数据类型、内存的管理,对象,协议等一些内容,具体内容,来看本文详解 。 一.数据类型 1、NSRange
2、NSPoint,NSSize,NSRect 3、NSString
4、NSMutableString
5、NSArray
6、NSMutableArray
7、NSEnumerator
8、NSDictionary
9、NSMutableDictionary
10、NSNumber 用来把基本数据类型包装成对象的形式 11、NSValue 可以包装任意值 12、NSNull
二、内存管理 1.Cocoa内存管理规则 (1)当你使用new、alloc或copy方法创建一个对象时,该对象的保留计数器值为1 。当不再使用该对象时,你要负责向该对象发送一条release或 autorelease消息(用完后或者在dealloc方法中进行统一释放) 。这样,该对象将在其使用寿命结束时被销毁 。 (2)当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,因此就不需要执行任何操作来确保该对象被清理 。 自动释放池:
如果你打算在一段时间内拥有该对象(使用retain方法),则需保留它并确保在操作完成时释放它(用完后或者在dealloc方法中进行统一释放) 。 (3)如果你保留了某个对象,则需要(最终)释放或自动释放该对象 。必须保持retain方法和release方法的使用次数相等 。 注:简单来说,如果使用了alloc,new或copy方法获得一个对象,则必须进行释放该对象操作 。 三、对象初始化 1.基本知识 (1)Objective-C创建对象有两种方法: [类名 new]:直接new一个新对象 [[类名 alloc] init]:先为对象分配内存空间,再为其初始化 (2)在Cocoa中,对象分配和初始化是两个分离的操作:来自NSObject的类方法alloce为对象分配一块内存并将其清0;实例方法init用于获得一个对象并使其运行 2.便利初始化函数 一个类中有的多个初始化函数,即多个以init开头的方法 。 3.指定初始化函数 类中的某个初始化方法被指派为指定初始化函数,该类的所有初始化方法使用指定初始化函数执行初始化操作 。子类使用其超类的指定初始化函数实现超类的初始化 。 四、特性(property) 1、基础知识 特性的预编译指令为@property,作用是自动声明属性的setter和getter方法,因此就不必再有为每个属性都写的访问器方法而产生的冗长代码了 。 即使用预编译指令@property通知编译器为对象的属性的setter和getter自动生成方法声明 。 同时使用@synthesis预编译指令通知编译器生成对应的访问器方法 。 2、格式 在.H文件中声明:@property 类型 变量名; 在.M文件中实现:@synthesis 变量名; 3、相关的点语法 访问属性的setter和getter方法有两种方式: (1)[对象 属性方法]:Objective-C特有的正规的[ ]方式 (2)对象.属性方法:和其他语言类似的.方式 4、特行扩展 在特性的声明里可以指定属性的一些要求,比如copy,retain,nonatomic,readwrite(默认),readonly等,方式为比如
五、类别 1、基本知识 类别是为现有的类添加新方法的方式 2、格式 (1)声明:
(2)实现:
3、类别局限性 (1)类别只能添加新方法,无法添加新的实例变量 (2)如果类别名和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级 4、类别的作用 通过类别的方式,可以将类的实现分散到不同的文件里 。 六、协议 1、基本知识 Objective-C的协议类似Java里的接口概念 2、格式 (1)声明:
(2)对象采用协议:在@interface类声明的后面添加<协议名称>
(3)对象实现协议:在@implementation里实现协议的方法
3、Objective-C 2.0中协议的新特性 (1)@optional预编译指令:表示可以选择实现的方法 (2)@required预编译指令:表示必须强制实现的方法 小结:初学者必备:Objective-C学习文档的内容介绍完了,希望本文对你有所帮助! |