Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协定一起)定义了基本的对象属性和行为。Foundation框架的剩余部分由几组相互关联的类和一些独立的类组成。有一些代表基本数据类型的类,如字元串、位元组数组、用于存储其它对象的集合类;一些代表系统信息的类,如日期类;还有一些代表系统实体的类,比如连线埠、执行绪、和进程。图1、图2、和图3所示的类层次描述了这些类的逻辑分组及其继承关係。
基本介绍
- 中文名foundation
- 属性计算机专业术语
- 根NSObject类
- 用途定义基本的对象属性和行为
层次
Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协定一起)定义了基本的对象属性和行为。
Foundation框架的剩余部分由几组相互关联的类和一些独立的类组成。有一些代表基本数据类型的类,如字元串、位元组数组、用于存储其它对象的集合类;一些代表系统信息的类,如日期类;还有一些代表系统实体的类,比如连线埠、执行绪、和进程。图1、图2、和图3所示的类层次描述了这些类的逻辑分组及其继承关係。
Founddation第一部分
Foundation类层次Foundation Continued
Founddation第二部分
Nsproty
Founddation第三部分
上面这些框图按照如下範畴(和下文提到的其它关联关係)将Foundation框架中的类进行逻辑分类
值对象。值对象封装了各种类型的数据,提供对数据进行访问和各种操作的途径。因为它们都是对象,所以可以对它们(和它们包含的数值)进行归档和分发。NSData类为位元组流提供面向对象的存储空间,而NSValue和NSNumber类则为简单的标量值数组提供面向对象的存储空间。NSDate、NSCalendarDate、NSTimeZone、NSCalendar、NSDateComponents、和NSLocale类提供代表时间、日期、日曆、和地域设定(locales)的对象。它们包含的方法可以用于计算日期和时间差、以各种格式显示日期和时间、以及调整世界上各个位置时间和日期。
字元串。NSString是另一类值对象,负责为以null结尾的、具有特定编码的位元组数组提供面向对象的存储空间。它支持对UTF-16、UTF-8、MacRoman、和很多其它编码的字元串之间进行转换。NSString还提供对字元串进行检索、组合、和比较、以及对档案系统路径进行操作的方法。您可以用NSScanner对象来对NSString对象中的数字和词进行解析。NSCharacterSet(显示在框图中的集合类部分)代表可以在各个NSString和NSScanner方法中使用的一组字元。
集合。集合是以一定的顺序存储和访问其它对象(通常是数值)的对象。NSArray的索引从0开始,NSDictionary使用键-值对,而NSSet则负责对象的随机存储(NSCountedSet类使集合具有唯一标识)。通过NSEnumerator对象,您可以访问一个集合中的元素序列。集合对象是属性列表的必要元素,和其它所有对象一样,它也可以被归档和分发。
作业系统服务。 很多Foundation类为访问各种底层的作业系统服务提供便利,又把开发者从作业系统的具体特性隔离开来。举例来说,您可以通过NSProcessInfo类查询应用程式运行的环境;通过NSHost类得到主机系统在网路中的名称和地址;通过NSTimer对象,您可以按指定的时间间隔向其它对象传送讯息;NSRunLoop可以帮您管理应用程式或其它类型程式的输入源;而NSUserDefaults则为存储全局(主机级别)和用户级预设值(预置)的系统资料库提供编程接口。
档案系统和URL。 NSFileManager为诸如创建、重命名、删除、和移动档案这样的档案操作提供统一的接口。NSFileHandle则可以进行较为底层的档案操作(比如档案内查找操作)。NSBundle可以寻找存储在程式包中的资源,可以动态装载某些资源(比如nib档案和代码)。您可以用NSURL和NSURLHandle类来表示、访问、和管理源于URL的数据。
进程间通讯。 这个範畴中的大部分类代表不同的系统连线埠、套接字、和名字伺服器,对实现底层的IPC很有用。NSPipe代表一个BSD管道,即一种进程间的单向通讯通道。
执行绪和子任务。 NSThread类使您可以创建多执行绪的程式,而各种锁(lock)类则为彼此竞争的执行绪在访问进程资源时提供各种控制机制。通过NSTask,您的程式可以分出一个子进程来执行其它工作或进行进度监控。
归档和序列化。这个範畴中的类使对象分发和持久保留成为可能。NSCoder及其子类和NSCoding协定一起,可以以独立于架构的方式来表示对象中包含的数据,可以将类信息和数据一起存储。
表达式和条件判断。条件判断类,即NSPredicate、NSCompoundPredicate、和NSComparisonPredicate类,负责对获取或过滤对象的逻辑约束条件进行封装。NSExpression对象则代表条件判断中的表达式。
Spotlight查询。NSMetadataItem、NSMetadataQuery和相关的查询类对档案系统的元数据进行封装,使元数据的查询成为可能。
Objective-C语言服务。NSException和NSAssertionHandler类为代码中的断言和例外处理提供了面向对象的封装。NSInvocation对象是Objective-C讯息的静态表示,您的程式可以对它存储,并在之后用于激活另一个对象的讯息。undo管理器(NSUndoManager)和分散式对象(Distributed Objects)系统都用到了这种对象。NSMethodSignature对象负责记录方法的类型信息,可以用于信息的推送。NSClassDescription则是一个抽象类,用于定义和查询类的关係和属性。
脚本。这个範畴中的类可以帮助您实现对AppleScript脚本和Apple Event命令的支持。
分散式对象。 您可以通过分散式对象类来进行同一台电脑或一个网路中的不同电脑上的进程间通讯。其中的两个类-NSDistantObject和NSProtocolChecker的根类(NSProxy)和Cocoa其它部分的根类不同。
网路。NSNetService和NSNetServiceBrowser类支持称为Bonjour的零配置网路架构。Bonjour是在IP网路上发布和浏览服务的强大系统。