历史

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中使用到的设计模式和对象之间的通讯形式,非常重要,否则使用这些类时,如果对设计模式等不熟悉的话,估计会一头雾水

iOS开发笔记 2、Cocoa简明相关推荐

  1. iOS开发笔记-两种单例模式的写法

    iOS开发笔记-两种单例模式的写法 单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下: 不使用GCD #import "ServiceManager.h"st ...

  2. 【iOS开发】从Cocoa框架说开去--Fundation框架系列

    [Cocoa简介] Cocoa是苹果公司为Mac OS X所创建的原生面向对象API 是Mac OS X上五大API之一.(其他四个:Carbon POSIX X11 Java)它是苹果的面向对象开发 ...

  3. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  4. IOS开发笔记1-写一个hello world!程序

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53227222 本文出自:[顾林海的博客] 序言 从今天开始正式踏上io ...

  5. IOS开发笔记之常用的第三方库(太多了。)

    图像: 1.图片浏览控件MWPhotoBrowser  实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...

  6. IOS开发笔记2-C语言基础复习

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/53439812 本文出自:[顾林海的博客] 前言 在正式进入ios开发前 ...

  7. iOS开发笔记 -- 推送证书的创建及合并

    iOS开发推送功能 在这里整理一下推送的步骤希望对大家有所帮助 推送证书,有效期限制一般为一年.当我们证书过期的时候,就需要重新生成证书了 . 我从头开始,也就是,你的开发者账号是空空的,什么都没有开 ...

  8. iOS开发笔记(二):block循环引用

    写这篇文章的缘由是第一次面试时被问到了block循环引用的问题,当时回答的不是很好,首先要明确的是,block是否用copy修饰决定不了循环引用的产生,在此再一次进行补强,有不对的地方还请多多指教. ...

  9. iOS开发笔记 - 界面调试神器Reveal

    http://blog.csdn.net/jackfrued/article/details/50934092 Reveal是iOS开发工具中的神器之一,它能够在应用程序运行过程中调试应用程序界面. ...

  10. iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇

    ******阅读完此文,大概需要5分钟****** 这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自 ...

最新文章

  1. SpringBoot 整合:Redis延时队列的简单实现(基于有赞的设计)
  2. MySQL体系结构之物理文件
  3. java list用法_java list的用法详解
  4. 计算字符串t在字符串s中出现的次数(KMP)
  5. 猫咪藏在哪个房间python作业_python练习题之 猫2
  6. jpa 实体映射视图_JPA教程:映射实体–第1部分
  7. java 中map_Java中Map集合
  8. springboot忽略证书_SpringBoot中通过java代码实现忽略SSL证书
  9. Go Elasticsearch 删除快速入门
  10. 学python的注意点_python学习入门细节知识点
  11. 使用yum update更新文件系统时不更新内核的方法
  12. 将字符'0'-'9'转换为数字(c语言)
  13. 盛大易宝只是陈天桥的梦而已
  14. 信号分析与处理(1)
  15. matlab常用开头,在MATLAB编辑中,以“”开头的表示()。
  16. PCI Expansion ROMs
  17. CSS3动画实践——简易牛顿摆
  18. C#创建临时文件夹方法
  19. 透明ico图标制作方法
  20. bat文件双击打开时出现闪退怎么办?

热门文章

  1. oracle session status killed,进程状态为KILLED的进程如何杀掉
  2. vue 指令 v-on 事件修饰符-自定义键盘事件
  3. docker mysql8
  4. Numpy Chararray对象
  5. Jupyter Notebook 转pdf 中文处理
  6. Pandas GroupBy 分组(分割-应用-组合)
  7. 怎么烧录c语言_单的入门1 -- C语言 : 一门和芯片对话的外语
  8. 职业经理人必读知识:36页SWOT全面解读,有效提升分析能力
  9. Spring Boot学习总结(20)——提升开发效率之热部署
  10. Linux学习总结(32)——Shell脚本高效编写技巧