Objective-C Foundation Framework
Previously we seen how to bind objects into methods dynamically : Objective-C : Dynamic Binding
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
Many of these classes have closely related functionality:
•Data storage : NSArray, NSDictionary, and NSSet provide storage
for Objective-C objects of any class.
•Text and strings : NSCharacterSet represents various groupings of
characters that are used by the NSString and NSScanner classes. The NSString
classes represent text strings and provide methods for searching, combining,
and comparing strings. An NSScanner object is used to scan numbers and words
from an NSString object.
•Dates and times : The NSDate, NSTimeZone, and NSCalendar classes
store times and dates and represent calendrical information. They offer methods
for calculating date and time differences. Together with NSLocale, they provide
methods for displaying dates and times in many formats and for adjusting times
and dates based on location in the world.
·Exception handling : Exception handling is used to handle
unexpected situations and it's offered in Objective-C with NSException.
·File handling : File handling is done with the help of class
·URL loading system : A set of classes and protocols that provide
access to common Internet protocols.
[Generally, we use Foundation classes something like: #import
<Foundation/NSString.h> to import a Objective-C class, but in order avoid
importing too many classes, it's all imported in #import