Jump To:
Leopard Reference Library
Cocoa is an object-oriented application environment designed for developing Mac OS X native applications. The Cocoa frameworks support rapid development and high productivity. Cocoa provides developers starting new Mac OS X projects the fastest way to full-featured implementations. Applications from other platforms can also be brought to Mac OS X quickly using Cocoa.

A guided introduction and learning path for developers new to Cocoa.   Essential information for developers using Objective-C.   Objective-C API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
NSRelationshipDescription Class Reference (HTML) (PDF)
Describes a relationship in a Core Data schema.
Objective-C Language Reference 2006-07-11
NSTextAttachmentCell Protocol Reference (HTML) (PDF)
Describes the interface for drawing text attachments.
Objective-C Language Reference 2006-05-23
NSURLResponse Class Reference (HTML) (PDF)
Describes the metadata returned by a server for a load request.
Objective-C Language Reference 2007-12-11
NSValidatedUserInterfaceItem Protocol Reference (HTML) (PDF)
Describes the interface for a control to respond to requests regarding automatic enabling and disabling.
Objective-C Language Reference 2006-08-29
Object-Oriented Programming with Objective-C (HTML) (PDF)
Describes object-oriented programming from the perspective of an Objective-C developer.
Objective-C Language Guides 2008-11-19
Objective-C 1 Runtime Reference (HTML) (PDF)
Deprecated - Describes the data structures and functions of the Objective-C 1.0 runtime support library.
Objective-C Language Reference 2009-01-06
The Objective-C 2.0 Programming Language (HTML) (PDF)
Introduces object-oriented programming and describes the main programming language used for Cocoa development.
Objective-C Language Guides 2009-05-06
Objective-C 2.0 Runtime Programming Guide (HTML) (PDF)
Describes the Objective-C 2.0 runtime support library.
Objective-C Language Guides 2009-02-04
Objective-C 2.0 Runtime Reference (HTML) (PDF)
Describes the data structures and functions of the Objective-C runtime support library.
Objective-C Language Reference 2008-11-19
Objective-C Release Notes (HTML)
Updated for Mac OS X v10.5
Objective-C Language Release Notes 2007-10-31
Reminders (HTML) (DMG) (ZIP)
Dashboard widget with a plug-in that displays upcoming iCal events, to do items, and calendars.
Objective-C Language Sample Code 2008-07-25
Squiggles (HTML) (DMG) (ZIP)
Demonstrates many Cocoa fundamentals in a Document-based Application featuring custom drawing and event-handling.
Objective-C Language Sample Code 2008-08-29
Variable arguments in Objective-C methods (HTML)
QA1405: How to implement methods which take a variable number of arguments.
Objective-C Language Technical Q&As 2005-01-13
Assertions and Logging (HTML) (PDF)
Explains how to use assertions and logging to diagnose problems in Cocoa applications.
Performance Guides 2006-04-04
Cocoa Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of Cocoa applications.
Performance Guides 2005-08-11
Code Size Performance Guidelines (HTML) (PDF)
Guidelines for reducing the size of an application binary.
Performance Guides 2006-06-28
Code Speed Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance and efficiency of code.
Performance Guides 2005-07-07
Debugging Cocoa Applications (HTML) (PDF)
Tips and techniques for debugging Cocoa applications.
Performance Guides 2002-11-12
DerivedProperty (HTML) (DMG) (ZIP)
Illustrates use of Core Data derived properties to make searching against string data more efficient.
Performance Sample Code 2008-06-04
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance Technical Q&As 2008-09-16
Drawing Performance Guidelines (HTML) (PDF)
Guidelines for improving the speed of drawing code.
Performance Guides 2006-04-04
Exception Programming Topics for Cocoa (HTML) (PDF)
Explains how to raise and handle exceptions in Cocoa applications.
Performance Guides 2007-10-02
File-System Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of file-related code.
Performance Guides 2005-07-07
Garbage Collection Programming Guide (HTML) (PDF)
Describes the garbage collection system for Cocoa.
Performance Guides 2008-11-19
How do I tell if a particular display is being hardware accelerated by Quartz Extreme? (HTML) (日本語 HTML)
QA1218: Describes how to use CGDisplayUsesOpenGLAcceleration to see if a display is accelerated or not.
Performance Technical Q&As 2002-12-04
Launch Time Performance Guidelines (HTML) (PDF)
Guidelines for improving the launch performance of an application.
Performance Guides 2006-04-04
Maximizing Mac OS X Application Performance (HTML)
Learn how to achieve better performance on Mac OS X.
Performance Articles 2003-06-23
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Performance Guides 2006-06-28
NSAssertionHandler Class Reference (HTML) (PDF)
Describes the facility for handling false assertions.
Performance Reference 2007-02-22
NSAutoreleasePool Class Reference (HTML) (PDF)
Describes the interface to the deferred-release mechanism in Cocoa's reference-counted memory management system.
Performance Reference 2009-01-02
NSRunLoop Class Reference (HTML) (PDF)
Describes the object that manages events on a thread.
Performance Reference 2008-02-08
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance Guides 2006-10-03
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Performance Articles 2005-06-20
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Performance Technical Q&As 2003-02-25
Requirements for Quartz GL (HTML)
QA1536: Describes the requirements for enabling Quartz GL.
Performance Technical Q&As 2008-08-08
SharedMemory (HTML) (DMG) (ZIP)
Shows how multiple applications can access the same memory using the Unix shmget system call.
Performance Sample Code 2003-01-14
SimpleThreads (HTML) (DMG) (ZIP)
Uses the Cocoa threading APIs to coordinate multiple preemptively scheduled secondary threads with the non-reentrant Cocoa framework.
Performance Sample Code 2003-01-14
Taking Advantage of the Accelerate Framework (HTML)
Learn how your application can run on PowerPC- or Intel-based Macs without processor-specific customization.
Performance Articles 2005-10-03
Threading Programming Guide (HTML) (PDF)
Explains how to use threads in Cocoa applications.
Performance Guides 2008-02-08
TrivialThreads (HTML) (DMG) (ZIP)
Uses the Cocoa threading APIs to coordinate a preemptively scheduled secondary thread with the non-reentrant Cocoa framework.
Performance Sample Code 2003-01-14
URL CacheInfo (HTML) (DMG) (ZIP)
Demonstrates resource caching behavior using the Cocoa URL loading system.
Performance Sample Code 2008-06-05
Worm (HTML) (DMG) (ZIP)
NSView performance demonstration. Uses a periodic timer to get best performance with Coalesced Update feature.
Performance Sample Code 2005-06-01
Adopting Universal Binaries on Mac OS X (HTML)
Learn about universal binaries and how to get your applications ready for Intel-based Macs.
Porting Articles 2005-08-26
CarbonQuartzComposer_TV (HTML) (DMG) (ZIP)
Demonstrates how to integrate Cocoa based QuartzComposer window into a Carbon based application
Porting Sample Code 2006-10-02
Core Endian Reference (HTML) (PDF)
Describes the C API for creating and installing callbacks to byte swap custom data.
Porting Reference 2007-05-29
Going Universal: Audio Developers Catch the Wave (HTML)
Learn how audio developers who built universal binaries of their applications are reaping the benefits.
Porting Articles 2006-07-18
Moriarity (HTML) (DMG) (ZIP)
Implementing a Cocoa GUI that wraps command-line functionality, calling a UNIX task and presenting the results in a GUI.
Porting Sample Code 2003-01-14
Porting Multithreaded Applications from Win32 to Mac OS X (HTML)
Learn how Mac OS X handles multithreading, before porting your Win32 application.
Porting Articles 2005-06-20
Scoping Your Transition Projects (HTML)
Learn how to transition to Intel-based Macs.
Porting Articles 2005-09-27
Setting environment variables for user processes (HTML)
QA1067: Tells how to set environment variables for user processes.
Porting Technical Q&As 2001-10-25
Universal Binary Programming Guidelines, Second Edition (HTML) (PDF)
Conceptual information and tips for writing code that runs on PowerPC-based and Intel-based Macintosh computers.
Porting Guides 2009-02-04
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Printing Technical Q&As 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Printing Technical Q&As 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Printing Technical Q&As 2001-10-02
Core Printing Reference (HTML) (PDF)
Describes the C API that provides an abstraction layer for application printing.
Printing Reference 2007-07-24
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Printing Technical Q&As 2001-07-02
The Enhanced Print Apple Event (HTML)
TN2082: Describes an enhancement to the print Apple event that gives developers more control over scripted printing.
Printing Technical Notes 2003-12-09
Gathering all PostScript Printer Descriptions (PPDs) (HTML)
QA1529: Describes a work around for an issue in PMCopyAvailablePPDs on Mac OS X 10.4 and below
Printing Technical Q&As 2008-08-08
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Printing Technical Q&As 2007-08-02
Mac OS X Printing System Overview (HTML) (PDF)
Introduces Apple's printing architecture. Includes a road map for developing software.
Printing Guides 2006-02-07
NSBox Class Reference (HTML) (PDF)
Describes a view that can display its border and a title.
Printing Reference 2008-10-15
NSPageLayout Class Reference (HTML) (PDF)
Describes a printing dialog for querying the user about page layout.
Printing Reference 2007-04-11
NSPrinter Class Reference (HTML) (PDF)
Describes a representation of a printer as specified by a PPD file.
Printing Reference 2007-01-29
NSPrintInfo Class Reference (HTML) (PDF)
Describes the print settings used for a print job.
Printing Reference 2009-01-06
NSPrintOperation Class Reference (HTML) (PDF)
Describes a print job.
Printing Reference 2007-03-02
NSPrintPanel Class Reference (HTML) (PDF)
Describes a print dialog.
Printing Reference 2007-07-16
NSPrintPanelAccessorizing Protocol Reference (HTML) (PDF)
Describes the interface for configuring accessory panes for the print panel.
Printing Reference 2007-03-09
NSView Class Reference (HTML) (PDF)
Describes the interface for drawing, event handling, and printing in views.
Printing Reference 2009-02-04
PDEPanel Protocol Reference (HTML) (PDF)
Describes the informal protocol used to implement custom panes in a printing dialog.
Printing Reference 2007-12-11
PDEPlugIn Protocol Reference (HTML) (PDF)
Describes the informal protocol used to add custom panes to a printing dialog.
Printing Reference 2007-12-11
PDEPlugInCallbackProtocol Reference (HTML) (PDF)
Describes the informal protocol used to access information about the current print job.
Printing Reference 2007-12-11
PMPrinterTest (HTML) (DMG) (ZIP)
Demonstrates using the PMPrinter APIs to obtain information about the connected printers.
Printing Sample Code 2009-02-13
Printing Programming Topics for Cocoa (HTML) (PDF)
Explains how to support printing in Cocoa applications.
Printing Guides 2006-06-28
Providing PDF Workflow Options in the Print Dialog (HTML) (PDF)
Installation information and examples, including the use of Automator workflows.
Printing Guides 2007-10-31
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Printing Technical Q&As 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Printing Technical Q&As 2003-02-25
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Printing Technical Q&As 2001-10-02
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Printing Technical Q&As 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Printing Technical Q&As 2001-07-02
Using PostScript Printer Description Files (HTML) (PDF)
Information for printer vendors. Includes installing files, PPD/PDE binding, and grouping features.
Printing Guides 2005-07-07
ViewController (HTML) (DMG) (ZIP)
Demonstrates how to use "NSViewController".
Printing Sample Code 2007-06-11
CrossEvents (HTML) (DMG) (ZIP)
Demonstrates how to send CarbonEvents and NSNotifications between Carbon and Cocoa.
Process Management Sample Code 2007-05-31
Customizing Process Stack Size (HTML)
QA1419: Describes methods for setting the stack size of a process and/or thread.
Process Management Technical Q&As 2008-02-20
Daemons and Agents (HTML)
TN2083: Describes the most common problems encountered with daemons and agents, and suggests detailed solutions.
Process Management Technical Notes 2007-11-05
Determining console user login status (HTML)
QA1133: How to determine whether a user is logged in on the console, and be notified of changes.
Process Management Technical Q&As 2008-04-14
Interacting with the Operating System (HTML) (PDF)
Explains how Cocoa applications manage tasks and get information about hosts and processes.
Process Management Guides 2006-04-04
LoginItemsAE (HTML) (DMG) (ZIP)
Uses Apple events to manipulate the list of login items (items launched when you log in).
Process Management Sample Code 2005-10-17
NSCondition Class Reference (HTML) (PDF)
Describes a pthread-style condition variable and associated mutex lock.
Process Management Reference 2008-09-09
NSConditionLock Class Reference (HTML) (PDF)
Describes an integer-based condition for use in thread locking.
Process Management Reference 2007-01-15
NSDistributedLock Class Reference (HTML) (PDF)
Describes a mutex lock that spans multiple processes.
Process Management Reference 2007-01-22
NSHost Class Reference (HTML) (PDF)
Describes a representation of a network host.
Process Management Reference 2007-03-24
NSLock Class Reference (HTML) (PDF)
Describes a mutex-based lock.
Process Management Reference 2008-02-08
NSLocking Protocol Reference (HTML) (PDF)
Describes the interface for supporting mutex and condition locks.
Process Management Reference 2007-01-22
NSOperation Class Reference (HTML) (PDF)
Describes an encapsulated, single-shot task.
Process Management Reference 2008-11-19
NSOperationQueue Class Reference (HTML) (PDF)
Describes an object that manages a set of prioritized operations.
Process Management Reference 2008-11-19
NSOperationSample (HTML) (DMG) (ZIP)
Demonstrates how to use the NSOperation and NSOperationQueue classes.
Process Management Sample Code 2007-06-11
NSProcessInfo Class Reference (HTML) (PDF)
Describes the current process.
Process Management Reference 2007-03-26
NSRecursiveLock Class Reference (HTML) (PDF)
Describes a lock that can be acquired multiple times by one thread without causing a deadlock.
Process Management Reference 2007-04-30
NSTask Class Reference (HTML) (PDF)
Describes a task that runs as a subprocess.
Process Management Reference 2007-01-31
NSThread Class Reference (HTML) (PDF)
Describes a thread of execution.
Process Management Reference 2007-12-11