Foundation.framework

From iPhone Development Wiki
Jump to: navigation, search
Foundation.framework
Public Framework
Availabile 1.0 – present
Class Prefix NS

This is the basic Objective-C-based framework, used by everything. Provides NSString, NSDictionary, NSArray, ... It provides many classes that wrap CoreFoundation classes, but also provides unique functionality above and beyond that.

Contents

Mac OS X classes that are undocumented on the iPhoneOS

There are several classes that are present on both Mac OS X and iPhoneOS, but the corresponding documentation are not found on the iPhoneOS.

Class Possible reason for being undocumented
NSAffineTransform CGAffineTransform is used instead.
NSUnarchiver and NSArchiver Deprecated — use NSKeyedUnarchiver and NSKeyedArchiver instead.
NSPointerFunctions, NSHashTable and NSMapTable No garbage collection on iPhoneOS.
NSHost Who knows?
NSTask SDK-compatible programs are not supposed to open other executables.
NSPortMessage SDK-compatible programs are not supposed to perform IPC. (Although NSMessagePort is documented.)
NSProtocolChecker Distributed objects are not available on the iPhoneOS.
NSURLDownload Who knows? (Note that NSURLDownload was not available.)

Versions

Firmware 2.0 2.1 2.2 3.0 3.1 3.2 4.0 4.1 4.2 4.3
SourceCache version 678.24 678.26 678.29 678.47 678.51 678.60 751.32 751.37 751.49 751.58
dylib version 678.24 678.26 678.29 678.47 678.51 678.60 751.32 751.37 751.49 751.58

Environment variables

Application built with Foundation will recognize the following environment variables

Name Purpose
NSDebugEnabled Enable generic debugging. Application-defined behavior.
NSHangOnUncaughtException Hang on uncaught exception instead of crash.
NSObjCMessageLoggingEnabled Useless on iPhoneOS.
NSZombieEnabled[1][2]
NSDeallocateZombies[1]
Use "zombies" for easier detection on misusing deallocated objects.
NSEnableAutoreleasePool[1]
NSAutoreleaseHighWaterMark[1]
NSAutoreleaseHighWaterResolution[1]
NSAutoreleaseFreedObjectCheckEnabled[1]
Autorelease pool debugging.
NSUnbufferedIO[3] Use unbuffered IO stream.
NSWarnAboutOldStyleArchiverMethods Warn about old style (non-keyed) archiver methods.
TMPDIR
NEXT_ROOT
Some methods depend on these environment variables.

References

  1. 1.0 1.1 1.2 1.3 1.4 1.5 http://developer.apple.com/mac/library/technotes/tn2004/tn2124.html#SECFOUNDATION
  2. http://www.cocoadev.com/index.pl?NSZombieEnabled
  3. http://lists.apple.com/archives/cocoa-dev/2002/Oct/msg00665.html