框架 | /System/Library/Frameworks/Foundation.framework |
头文件目录 | /System/Library/Frameworks/Foundation.framework/Headers |
头文件 | FoundationErrors.h NSArray.h NSAttributedString.h NSAutoreleasePool.h NSBundle.h NSByteOrder.h NSCache.h NSCalendar.h NSCharacterSet.h NSCoder.h NSComparisonPredicate.h NSCompoundPredicate.h NSData.h NSDate.h NSDateFormatter.h NSDecimal.h NSDecimalNumber.h NSDictionary.h NSEnumerator.h NSError.h NSException.h NSExpression.h NSFileCoordinator.h NSFileHandle.h NSFileManager.h NSFilePresenter.h NSFileVersion.h NSFileWrapper.h NSFormatter.h NSHTTPCookie.h NSHTTPCookieStorage.h NSHashTable.h NSIndexPath.h NSIndexSet.h NSInvocation.h NSKeyValueObserving.h NSKeyedArchiver.h NSLinguisticTagger.h NSLocale.h NSLock.h NSMapTable.h NSMetadata.h NSMethodSignature.h NSNetServices.h NSNotification.h NSNotificationQueue.h NSNull.h NSNumberFormatter.h NSObjCRuntime.h NSObject.h NSOperation.h NSOrderedSet.h NSOrthography.h NSPathUtilities.h NSPointerArray.h NSPointerFunctions.h NSPort.h NSPredicate.h NSProcessInfo.h NSPropertyList.h NSProxy.h NSRange.h NSRegularExpression.h NSRunLoop.h NSScanner.h NSSet.h NSSortDescriptor.h NSStream.h NSString.h NSTextCheckingResult.h NSThread.h NSTimeZone.h NSTimer.h NSURL.h NSURLAuthenticationChallenge.h NSURLCache.h NSURLConnection.h NSURLCredential.h NSURLCredentialStorage.h NSURLError.h NSURLProtectionSpace.h NSURLProtocol.h NSURLRequest.h NSURLResponse.h NSUUID.h NSUbiquitousKeyValueStore.h NSUndoManager.h NSUserDefaults.h NSValue.h NSValueTransformer.h NSXMLParser.h NSZone.h |
介绍
Foundation框架定义了Objective-C类的基础层。它除了提供一组有用的原始对象类,还介绍了几种Objective-C语言未涵盖的功能范式。Foundation框架在设计时考虑到了这些目标:
提供一小组基本的实用工具类 |
通过引入一致约定的事情使软件开发变得更容易,比如引入deallocation |
支持Unicode字符串,对象持久化和分布对象 |
提供一定级别的操作系统独立,以提高可移植性 |
Foundation框架包括了根对象类,有一些类代表基本数据类型,比如字符串和字节数组,集合类用以存储其他对象,有一些类代表系统信息,比如日期,有一些类代表通信端口。图1-1显示了这些类的列表,构成了Foundation框架。
Foundation框架介绍了几种范式,以避免常见情况下的混乱,以及跨类层次结构时一定级别的一致性。这种一致性是通过一些标准来达成的,比如对象的所有权(也就是,谁负责处理对象)与抽象类(如NSEnumerator)。这些新的范式减少了API中特殊和意外情况的数量,使你可以通过重复使用包含各种类型对象的相同的机制来提高编码效率。
Foundation框架类
Foundation框架类层次结构的根是NSObject类(查看图1-1)。Foundation框架的其余部分是由几个相关联的类组和个别类组成的。许多的类组形成了类簇—抽象类作为一些多功能的私有子类的接口。例如,NSString和NSMutableString,作为不同类型的各种私有子类进行优化存储需求的中间者实例。通过这个方法来创建字符串,将会返回一个经过适当优化的实例给你。
注意事项:在下面的层次结构图中,蓝色阴影区域包括了OS X和iOS中可用的类;灰色阴影区域中包括的类只能在OS X中使用。
图1-1 Cocoa Object-C Foundation的层次
许多这些类密切相关的功能:
数据存储。NSData和NSString对数组和字节提供面向对象的存储。NSValue和NSNunber对简单的C数据值的数组提供面向对象的存储。NSArray,NSDictionary和NSSet对任意Objective-C类的对象提供存储。 |
文本和字符串。NSCharacterSet代表字符的各个组合,可以在NSString和NSScanner类中用到。NSString类代表文本字符串,并且提供了字符串的查找,合并和比较的方法。一个NSScanner实例用于扫描NSString实例中的数字和字。 |
日期和时间。NSDate,NSTimeZone和NSCalendar类中保存了时间,日期和历法信息。它们提供不同的方法来计算日期和时间。连同NSLocale,它们提供了多种格式的显示日期和时间的方法,以及根据在世界上的位置调整时间和日期。 |
应用协调和时序。NSNotification,NSNotificationCenter和NSNotificationQueue提供了一个系统,这个系统可以用于当一个对象发生变化时,通知所有关心这种变化的观察者。你可以使用一个NSTimer对象以指定时间间隔向另一个对象发送消息。 |
对象创建和处理。NSAutoreleasePool可以用于实现Foundation框架的延迟释放功能。 |
对象分配和持久性。一个对象包含的数据可以使用NSProperytListSerialization以一个与体系结构无关的方式表现出来。NSCoder及其子类使这个功能更进了一步,它可以使类的信息和数据一起存储。这种表示结果可以用作归档和对象分配。 |
操作系统服务。一些类被设计成可以使你与各种各样的操作系统的特质相隔离。NSFileManager提供了文件操作的统一接口(创建,重命名,删除等等)。NSThread和NSProcessInfo可以使你创建多线程应用程序,以及查询应用程序运行的环境。 |
URL加载系统。一组类和协议提供了常见的Internet协议的访问。 |