iOS Foundation 框架基类
太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商业用途-保持一致”创作公用协议
基类 | ||
Title | Topic | Date |
NSObject Class Reference | Data Types & Collections | Minor Change |
NSObject Protocol Reference | Data Types & Collections | Minor Change |
NSNull Class Reference | Data Types & Collections | Minor Change |
NSValue Class Reference | Data Types & Collections | Minor Change |
NSUUID Class Reference | Data Types & Collections | Minor Change |
NSCopying Protocol Reference | - | Minor Change |
NSMutableCopying Protocol Reference | - | Minor Change |
NSMethodSignature Class Reference | Data Types & Collections | Minor Change |
Objective-C Runtime Reference | Objective-C | Minor Change |
Advanced Memory Management Programming Guide | Performance | Minor Change |
NSAutoreleasePool Class Reference | - | Minor Change |
首先我们了解一下,面向对象与基于对象,下面引用一段别人博客的阐述:
“面向对象大家都很熟悉,可是基于对象就不一定了。两个听起来好象是同一回事,而事实上它们却千差万别。基于对象是指:我们采用对象封装技术,将数据和操作捆绑在一起,但是并没有合理地使用多态、继承等面向对象技术进行软件设计。其中的“没有合理使用”这一修饰非常重要,它道出了面向对象和基于对象的本质区别。
虽然,听起来面向对象我们很是熟悉,但就我的观察,很多以前从事C程序开发的人,当他采用面向对象的编程语言(如C++)进行开发时,写出来的程序却是基于对象的。或者说他们是采用面向对象的语言编写面向过程的程序!”
引用这段话,应原作者要求,需贴上下面的转载说明:
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yunli.blog.51cto.com/831344/184846
在软件设计领域中,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。
这其中提到的“继承”,涉及到基类和派生类,
基类:通过继承机制,可以利用已有的数据类型来定义新的数据类型。所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为父类,也就是基类。
这样看来,确实有必要,在了解 iOS 强大功能之前,先掌握基类提供了哪些功能,这样便可上下自如,游刃有余。
上面列表中的内容,大体可以分类几部分,一是 NSObject 基类相关的,一是采纳的基类相关协议,再就是运行时及反射相关功能,最后就是内存管理。
而其中有三个,应属于集合部分,但考虑到仅是准备阶段,那么就放到基类部分来研究为好:
NSNull Class Reference | Data Types & Collections | Minor Change |
NSValue Class Reference | Data Types & Collections | Minor Change |
NSUUID Class Reference | Data Types & Collections | Minor Change |
这三个类,应该说都是为集合而生,NSNull 是为了 nil 能作为集合的元素;NSValue 是为了能使标量能作为集合元素;而NSUUID,则是要能够作为集合元素的自定义对象必须实现的对象是否相等的判定方法所返回的标识该对象的唯一值,当没有值可用时,可使用 UUID来确保唯一;不过 NSUUID 也是取消的设备唯一编号的一种替代方案,但我认为它并不一定专为它而生!
接下来,先研究 NSObject 这个绝大多数类的基类以及相应的协议,这些协议方法对日后的使用也很关键,该基类将其派生类与系统运行时有机地联接起来,这样 iOS 提供的强大功能便在掌握之中,并可在掌握其基本运行机理的情况下,有效地进行扩展。真可谓,上可升天,下可遁地。
1、NSObject 基类及相关协议