什么是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. 向html当中插入数据

    ].;i<obj.length;i++){ $('#compclass').append("<option>"+obj[i].fields.name+" ...

  2. [笔记]Go语言写文件几种方式性能对比

    Go语言中写文件有多种方式,这里进行如下几种方式的速度对比: 打开文件,写入内容,关闭文件.如此重复多次 打开文件,写入内容,defer 关闭文件.如此重复多次 打开文件,重复多次写入内容,defer ...

  3. HDU - 6370 Werewolf 2018 Multi-University Training Contest 6 (DFS找环)

    求确定身份的人的个数. 只能确定狼的身份,因为只能找到谁说了谎.但一个人是否是民,无法确定. 将人视作点,指认关系视作边,有狼边和民边两种边. 确定狼的方法只有两种: 1. 在一个仅由一条狼边组成的环 ...

  4. SqlHelper简单实现(通过Expression和反射)7.MySql数据处理类

    MySql的数据处理类和Sql Server没有太大差别,从思路上来说没有区别,所以此处只是给出代码,不再多加解释了. using System; using System.Configuration ...

  5. 分支语句(switch case)

    /switch case 的应用 Console.WriteLine("1.汉堡包"); Console.WriteLine("2.薯条"); Console. ...

  6. zoj2432

    /* 首先,dp的最开始是定义状态 dp[i][j] 表示A串的前i个,与B串的前j个,并以B[j]为结尾的LCIS 的长度. 状态转移方程: if(A[i]==B[j]) dp[i][j]=max( ...

  7. CF932E Team Work(第二类斯特林数)

    题目 CF932E Team Work 前置:斯特林数\(\Longrightarrow\)点这里 做法 \[\begin{aligned}\\ &\sum\limits_{i=1}^n C_ ...

  8. 2018-2019-2 20165114《网络对抗技术》Exp3 免杀原理与实践

    Exp3 免杀原理与实践 目录 一.实验内容 二.基础问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 三.实践过程记录 正确使用msf编码器,msfv ...

  9. NOIP Mayan游戏

    描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定的步数内消 ...

  10. Spring_使用 JdbcTemplate和JdbcDaoSupport