曆史
NeXSTEP
Many years ago Cocoa was known as NeXTSTEP . NeXT Computer developed and released version 1.0 ofNeXTSTEP in September of 1989, and versions 2.0 and 3.0 followed not far behind (in 1990 and 1992,respectively). In this early phase, NEXTSTEP was more than an application environment; the term referred tothe entire operating system, including the windowing and imaging system (which was based on DisplayPostScript), the Mach kernel, device drivers, and so on.Back then, there was no Foundation framework. Indeed, there were no frameworks; instead, the softwarelibraries (dynamically shared) were known as kits, the most prominent of them being the Application Kit.Much of the role that Foundation nowoccupieswas taken by an assortment of functions, structures, constants,and other types. The Application Kit itself had a much smaller set of classes than it does today. In addition to the Application Kit, the early NeXTSTEP included the Sound Kit and the Music Kit, librariescontaining a rich set of Objective-C classes that provided high-level access to the Display Postscript layer foraudio and music synthesis.
OpenStep
In early 1993 NeXTSTEP 3.1 was ported to (and shipped on) Intel, Sparc, and Hewlett-Packard computers.NeXTSTEP 3.3 alsomarked amajor new direction, for it included a preliminary version of Foundation. Aroundthis time (1993), the OpenStep initiative also took form. OpenStep was a collaboration between Sun andNeXT to port the higher levels of NeXTSTEP (particularly the Application Kit and Display PostScript) to Solaris.The “Open” in the name referred to the open API specification that the companies would publish jointly. Theofficial OpenStep API, published in September of 1994, were the first to split the API between Foundationand Application Kit and the first to use the “NS” prefix.
By June 1996 NeXT had ported and shipped versions of OpenStep 4.0 that could run Intel, Sparc, andHewlett-Packard computers as well as an OpenStep runtime that could run on Windows systems. Sun alsofinished their port of OpenStep to Solaris and shipped it as part of their Network Object ComputingEnvironment. OpenStep, however, never became a significant part of Sun’s overall strategy.
Cocoa
When Apple acquired NeXT Software (as it was then called) in 1997 ,OpenStep became the Yellow Box andwas included with Mac OS X Server (also known as Rhapsody) and Windows. Then, with the evolution of theMac OS X strategy, it was finally renamed to “Cocoa.”
Cocoa Framework
架構的組成,包括基礎和應用
■ Mac OS X: Foundation and Application Kit
■iOS: Foundation and UIKit
Foundation
The Foundation framework defines a base layer of classes that can be used for any type of Cocoa program.The criterion separating the classes in Foundation from those in the Application Kit is the user interface.
Application Kit (Mac OS X)
The Application Kit (which is sometimes referred to as the AppKit) is a framework containing all the objectsyou need to implement your graphical, event-driven user interface on Mac OS X: windows, dialogs, buttons,menus, scrollers, text fields—the list goes on.
UIKit (iOS)
The UIKit framework on iOS is the sister framework of the Application Kit onMac OS X. Its purpose is essentiallythe same: to provide all the classes that an application needs to construct and manage its user interface.However, there are significant differences in how the frameworks realize this purpose.
Core Data
Core Data is a Cocoa framework that provides an infrastructure formanaging object graphs, including supportfor persistent storage to a variety of file formats. Object-graph management includes features such as undoand redo, validation, and ensuring the integrity of object relationships. Object persistence means that CoreData saves model objects to a persistent store and fetches them when required. The persistent store of aCore Data application—that is, the ultimate form in which object data is archived—can range from XML filesto SQL databases. Core Data is ideally suited for applications that act as front ends for relational databases,but any Cocoa application can take advantage of its capabilities.
Other Frameworks With Cocoa API
除了以上的基礎架構以外,還有各種基於Cocoa的其他架構,如:
Sync Services—(Mac OS X only)
Address Book
Preference Panes—(Mac OS X only)
Screen Saver—(Mac OS X only)
iAd—(iOS only)
Map Kit—(iOS only)
…
知道了這些基本概念後,可以熟悉一下“Cocoa Fundamentals Guide”文檔
然後參考一些相關的文檔和例子就可以熟悉整個的架構情況
Cocoa Fundamentals Guide
■ Cocoa Fundamentals Guide
introduces the basic concepts, terminology, architectures, and design patternsof the Cocoa frameworks and development environment.
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaFundamentals.pdf
這個官方文檔包含了很多資訊
特別4,5章描述了Cocoa中使用到的設計模式和對象之間的通訊形式,非常重要,否則使用這些類時,如果對設計模式等不熟悉的話,估計會一頭霧水