Important: The information in this document is obsolete and should not be used for new development.
Package | com.apple.cocoa.foundation |
Important: The Java API for the Foundation framework is deprecated in Mac OS X version 10.4 and later. You should use the Objective-C API, documented in Foundation Framework Reference, to develop Cocoa applications.
The Foundation framework defines a base layer of Java classes. In addition to providing a set of useful primitive object classes, it introduces several paradigms that define functionality not covered by the Java language. The Foundation framework is designed with these goals in mind:
Provide a small set of basic utility classes.
Make software development easier by introducing consistent conventions for things such as deallocation.
Support Unicode strings, object persistence, and object distribution.
Provide a level of OS independence, to enhance portability.
The Foundation framework includes the root object class, classes representing basic data types such as strings and byte arrays, collection classes for storing other objects, classes representing system information such as dates, and classes representing communication ports. See Figure I-1 for a list of those classes that make up the Foundation framework.
The Foundation framework introduces several paradigms to avoid confusion in common situations, and to introduce a level of consistency across class hierarchies. This consistency is done with some standard policies, such as that for object ownership (that is, who is responsible for disposing of objects), and with abstract classes like NSEnumerator. These new paradigms reduce the number of special and exceptional cases in an API and allow you to code more efficiently by reusing the same mechanisms with various kinds of objects.
The Foundation class hierarchy is rooted in the Foundation frameworkâs NSObject class (see Figure I-1). The remainder of the Foundation framework consists of several related groups of classes as well as a few individual classes. NSStringReference and NSMutableStringReference, for example, act as brokers for instances of various subclasses optimized for different kinds of storage needs. Depending on the method you use to create a string, an instance of the appropriate optimized class will be returned to you.
Many of these classes have closely related functionality:
Data storage. NSData provides object-oriented storage for arrays of bytes. NSArray, NSDictionary, and NSSet provide storage for objects of any class.
Text and strings. NSCharacterSet represents various groupings of characters that are used by the String and NSScanner classes. An NSScanner object is used to scan numbers and words from a String object.
Dates and times. The NSDate and NSTimeZone classes store times and dates. They offer methods for calculating date and time differences, for displaying dates and times in many formats, and for adjusting times and dates based on location in the world.
Application coordination and timing. NSNotification, NSNotificationCenter, and NSNotificationQueue provide systems that an object can use to notify all interested observers of changes that occur. You can use an NSTimer object to send a message to another object at specific intervals.
Object distribution and persistence. The data that an object contains can be represented in an architecture-independent way using NSPropertyListSerialization. The NSCoder and its subclasses take this process a step further by allowing class information to be stored along with the data. The resulting representations are used for archiving and for object distribution.
© 1997, 2006 Apple Computer, Inc. All Rights Reserved. (Last updated: 2006-07-24)
|