什么是Cocoa?

NeXTSTEP(以Unix作为内核的操作系统)内置的许多库(libraries)和工具,让程序员以一种优雅的方式与窗口管理器进行交互,这些libraries叫做Framework,在1993年这些frameworks和工具被重新修改并重命名为 OpenStep,后来被重命名为Cocoa(大家应该知道为什么Cocoa的类都有着NS的前缀了吧)

那么这些libraries是什么呢?

通常是一些可能一起使用的类集合,这些类被一起编译成可复用的代码库(libraries)

什么是Xcode?

Cocoa开发用到的所有工具都作为Mac OS X Developer Tool的一部分一起提供给用户,你可以从Mac OS  X安装盘中免费的得到它们。虽然Mac OS X Developer Tool将会在你的系统中添加许多有用的程序。但是我们将主要使用这两个程序:Xcode 和 Interface Builder。而在这些IDE内部,gcc作为编译器来编译代码,gdb来调试。

 Xcode掌控应用程序中所有使用到的资源,代码,图片,声音等等.你只要在Xcode中编写代码,由Xcode来编译和运行你的程序。同时Xcode也能调用和控制调试器。

 Interface Builder是一个GUI构建工具,通过它你可以创建窗口布局并且把各个组件添加到窗口中,Interface Builder使程序员能方便的创建各种对象并编辑它们的属性,这些对象多数是用户界面元件,比如按钮和文本输入框,但是也可以是你自定义的对象

什么是FrameWork?

FrameWork是一些类的集合,通常是一些可能一起使用的类集合.换句话说,这些类被一起编译成可复用的代码库(library of code)。所有相关的资源和代码库一起放入一个带扩展名“.framework”的目录(Mac OSX bundle 的概念可以参考苹果的一些文档). 系统自带的framework可以在/System/Library/Frameworks找到.

Cocoa有3个framework组成

1. Foundation: 所有的面向对象语言都会有一些标准结构: value , collection , String, dates, lists, thread等等.所有的这些都在Foundation framework里面(可以对比C++的STL)

2. Appkit: 所有和用户界面相关的类都在这里. Windows,buttons,text field, event, drawing. 它还有个名字: ApplicationKit

3. Core Data: Core Data可以方便的让你把你的对象存储成文件,或是从文件中加载你的对象.

当然Mac OSX 开发包还提供了其他的很多framework. 比如QuickTime, CD 刻录等等. 这本书我们只关注上面提到的3个基本framework. 一旦你掌握了这些基本framework.你将会更容易理解其他的framework.(cocoa 只是MacOSX的一个开发环境,它提供基本的开发Max OSX应用程序的SDK. 当然如果你要开发某种特定的应用,你可以需要使用Apple提供的其他SDK. 例如要开发播放DVD的程序.你可能会使用到DVDPlayback.framework.它甚至是C++接口的)

当然,你也可以创建你自己的framework. 一个典型的例子,当相同的类被好几个应用程序使用的时候.你可能会扔给他们一个framework.

 小结:

Framework是一个类库;

Cocoa是三个Framework的合集;

Xcode是一个集成开发环境。

Framework、Cocoa、Xcode的更多相关文章

  1. 【转】XCode、Cocoa、Objective-C 的关系区别

    原文网址:http://blog.sina.com.cn/s/blog_5e89e1ff0100z4k1.html Object-Ciphone开发用的编程语言不是c,c++,java 而是objec ...

  2. MFC、WTL、WPF、wxWidgets、Qt、GTK、Cocoa、VCL 各有什么特点?

    WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI Framework也只能算是一次行为艺术,这个思路下继续发展就会变得 ...

  3. 测试 ClownFish、CYQ、Entity Framework、Moon、MySoft、NHibernate、PDF、XCode数据访问组件性能

    下期预告: 由于很多园友反馈,有的组件不应该缺席.测试复杂度不够.测试还缺乏一定的公平. 因此考虑在下一个版本中,确保在更加公平的前提下进行更高复杂度的测试 . 同时将分为2组测试,纯SQL组件及纯O ...

  4. [转].NET Framework、C#、CLR和Visual Studo之间的版本关系

    原文地址:http://www.xcode.me/more/microsoft-net-framework-version-define C#版本 .NET Framework版本 CLR版本 Vis ...

  5. 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)

    七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...

  6. [Xcode 实际操作]八、网络与多线程-(24)社会化分享功能开发包的安装和配置:微信、QQ、微博

    目录:[Swift]Xcode实际操作 本文将演示如何在开放平台注册应用,并获得相关的密钥信息,用于实现后面文章的微博分享功能. 一.新浪微博开放平台 [登录]->[微服务]->[粉丝服务 ...

  7. Windows 常用运行库下载 (DirectX、VC++、.Net Framework等)

    经常听到有朋友抱怨他的电脑运行软件或者游戏时提示缺少什么 d3dx9_xx.dll 或 msvcp71.dll.msvcr71.dll又或者是 .Net Framework 初始化之类的错误而无法正常 ...

  8. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...

  9. 2.1 -1.0 Xcode(发布时间、使用、快捷键、插件相关)

    本文并非最终版本,如有更新或更正会第一时间置顶,联系方式详见文末 如果觉得本文内容过长,请前往本人 “简书” 1.0 Xcode 发布时间 版本 iOS 版本 手机 日期 特殊介绍 Xcode 3.1 ...

随机推荐

  1. CoreThink开发(十)把官方首页轮播替换成HTML5-3D轮播

    效果: 资源已经上传到我的下载里边. http://download.csdn.net/detail/u012995856/9587206 1.复制资源文件到CoreThink项目中 corethin ...

  2. 用python简便地抓取刘昊然的写真(17行代码)

    17行python代码抓取刘昊然图片之家的写真 用python来爬取网页信息是很简便的.因为它有很多库来帮助我们实现我们想要的功能.本实验用到的库有:requests和bs4中的BeautifulSo ...

  3. C# 委托及匿名函数

    一. 为什么使用委托,代码如下:(注释掉的是没用委托之前的使用方式,没有注释的是使用了委托的) public delegate string DelProStr(string name); class ...

  4. 基本运算符与流程控制(Day5)

    一  运算符 1.算数运算 2.比较运算 3.赋值运算 4.逻辑运算 and注解: 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际 ...

  5. xshell下载安装

    打开网址http://www.netsarang.com/download/software.html 找到最新版的xshell,点击下载 在跳转的页面填写个人信息,许可证类型选择家庭和学校使用,除了 ...

  6. linux查看某个端口被哪个程序占用

    查看某个端口被哪个程序占用 netstat  -anp  |grep   端口号 查看进程号对应的程序 ps -ef | grep 17997 查看指定端口号的进程情况 netstat -tunlp

  7. curl类封装

    <?php /**   * @author askwei **/   class CURL   {      private $ch;      private $url = "htt ...

  8. 一键配置IP地址脚本

    #/bin/bash NETPWD='/etc/sysconfig/network-scripts/' read -p "please enten net num(1,2,3,4) : &q ...

  9. adb 不设别解决方案

    1.当然首先你得将手机里的usb debug选项选上,否则lsusb是不会有你的设备的 2. lsusb 查看usb设备id 3. sudo vim /etc/udev/rules.d/51-andr ...

  10. Linux系统运行级别配置

    Linux的运行级别 Linux的运行级别有七种,可以通过查看/etc/inittab文件进行了解: Level0:系统停机状态,默认系统运行级别不能设置为0,否则系统不能正常启动: Level1:单 ...