Foundation FrameWork初探之类(们)
(译者注:大家可能会发现在本篇中有很多类字后出现了(们),因为此时提到的类病并不单单是一个类,而是多个类的一个组合,笔者使用(们)这种方式标志出本文中提到的类的不同性质,因为笔者不喜欢类组这个词)
基础类层次结构根源于Foundation框架的NSObject类(见下图Figure I-1)。Foundation框架的其余部分由几个相关的类组以及个别类构成。一些类组来自一个我们成为类簇,一个起着对一套多功能的私有子类的伞接口功能的抽象类。(译者注:关于类簇大家参考http://baike.baidu.com/view/8819186.htm)例如NSString 和 NSMutableString,作为中间人为不同用途的存储需求对个别的私有子类进行优。根据你创建的一个字符串(String)时使用的方式,你就会得到一个你需要的合适的优选的类的实例(对象)。
Note:在下图中,蓝色区域的类在OSX和iOS中都是可以用的,灰色区域的类只在OSX中可用。
这些类中的一大部分都有密切相关的功能:
·数据存储:NSData 和NSString提供字节(数组)的面向对象存储(什么叫面向对象的存储?)、NSValue和NSNumber提供对单纯的C数值的面向对象的存储 、NSArray,NSDictionary和NSSet提供对Objective-C的所有类型对象的面向对象存储。
·文本和字符串:NSCharacterSet代表多种NSString和NSScanner使用的字符的分组。NSString 类(们)提供代表文本字符串并且提供了搜索,合并,比较等字符串操作的方法。NSScanner对象是用来在一个NSString对象中查找(扫描scan)数组和单词。
·日期和时间:NSDate、NSTimeZone和NSCalendar类(们)保存时间和日期并且代表日历的信息。它们提供了计算日期和时间之差的方法(途径method)。和NSLocale共同提供了显示不同格式的日期时间,和世界各地时间格式之间的调整转换。
·应用协作和计时:NSNotification、NSNotificationCenter和NSNotificationQueue提供当对象发生改变时可以用来通知它的关注它的所有关注者对象们的一个通知系统。我们可以使用一个NSTime对象来在特定的时间间隔向另一个对象发送消息。
·对象创建和销毁:NSAutoreleasePool被用于实施Foundation框架的延迟释放功能。
·对象分配和持续时间(生命周期?):对象包含的数据可以通过使用NSPropertyListSerialization以独立结构的方式来表示,NSCoder及其子类通过允许类信息与数据一起被存储进一步采取了这个过程。把对象分布的结果用于归档。
·操作系统服务:有些类设计的目的就是把我们和令人Puzzle的系统服务隔离开来。NSFileManager提供了一个文件操作(创建,重命名,删除等)的一致接口。NSThread和NSProcessInfo让我们能后创建多线程应用和请求应用运行时的环境。
·URL加载系统:有一套类和协议(代理)提供了对公网的访问。