Framework是一个类库;Cocoa是三个Framework的合集;Xcode是一个集成开发环境。
库 library of code
静态库(.a)和动态库是相对编译期和运行期的:
静态库在程序编译时会被链接到目标代码中(链接时完整地拷贝至可执行文件中),程序运行时将不再需要改静态库(包含在应用中);而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在(在应用外)。
( 动态库链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用.应该叫共享库,那么从这个意义上来说,苹果禁止iOS开发中使用动态库就可以理解了:1.因为在现在的iPhone,iPodTouch,iPad上面程序都是单进程的,也就是某一时刻只有一个进程在运行. 2.沙盒封闭 )
使用库是很麻烦的。你不仅仅需要包含库本身,还要加入所有的头文件,资源等等。苹果解决这个问题的方式是框架(framework)。基本上,这是含有固定结构并包含了引用该库时所必需的所有东西的文件夹。
系统的.Framework是动态库(苹果只允许自己使用动态库) ; 自制的.Framework是静态库。
框架 FrameWork
FrameWork是一些类的集合
通常是一些可能一起使用的类集合.换句话说,这些类被一起编译成可复用的代码库(library of code)。所有相关的资源和代码库一起放入一个带扩展名“.framework”的目录(Mac OSX bundle的概念可以参考苹果的一些文档).系统自带的framework可以在/System/Library/Frameworks找到
.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework
Cocoa
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可以方便的让你把你的对象存储成文件,或是从文件中加载你的对象.
Xcode
Xcode是一个集成开发环境
掌控应用程序中所有使用到的资源,代码,图片,声音等等. 你只要在Xcode中编写代码,由Xcode来编译和运行你的程序。同时Xcode也能调用和控制调试器。
其中gcc作为编译器来编译代码,gdb来调试。
IDE 集成开发环境
集成开发环境(简称IDE Integrated Develop Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
网友评论