1. 必备常识
Cocoa
是什么?
Cocoa是苹果公司为macOS创建的面向对象的编程环境。
Cocoa应用程序一般使用Xcode编写。
对终端用户来说,使用Cocoa编程环境开发的应用程序即为Cocoa应用程序。
Cocoa本身由Objective-C语言写成,因此Objective-C是开发Cocoa应用的首选语言。
为什么Cocoa中类名中常含有NS前缀?
Cocoa是从NeXT公司(乔布斯创建)开发的编程环境NeXTSTEP和OPENSTEP演变而来。NS代表的就是NeXTSTEP。
内存管理
Cocoa
环境的特点就是可以管理动态分配的内存。Cocoa
的绝大多数类都继承自NSObject
,它实现了引用计数的内存管理模型。
从NSObject
继承来的类可以响应retain
和release
消息,以增减其引用计数;也可以通过retainCount
消息来获取其引用计数。
一个以alloc``copy``new
所创建的对象,引用计数为1;向对象发送retain
消息,引用计数将加1;向对象发送release
消息,引用计数将减1;当引用计数减为0的时候,对象会销毁。dealloc
消息类似于析构函数,在对象被销毁之前(可能)会被调用。
主要框架
Cocoa
包含两个主要的Objective-C
对象库,称为“框架”。框架的功能类似于动态库,即可以在运行时动态的载入应用程序的地址空间,但框架作为一个捆绑 (计算机)而非独立文件,其中除了可执行代码外,也包含了资源,头文件和文档。
- Foundation工具包,或简称为
Foundation
,首先出现在OpenStep中。在Mac OS X中,它是基于Core Foundation
的。作为通用的面向对象的函数库,Foundation提供了字符串,数值的管理,容器及其枚举,分布式计算,事件循环,以及一些其它的与图形用户界面没有直接关系的功能。其中用于类和常数的“NS”前缀来自于Cocoa的来源NeXTSTEP。它可以在Mac OS X和iOS中使用。 - 应用程序工具包,或称AppKit(Application Kit)是直接派生自NeXTSTEP的AppKit的。它包含了程序与图形用户界面交互所需的代码。它是基于Foundation创建的,也使用“NS”前缀。它只能在Mac OS X中使用。
- “用户界面工具包”,或称UIKit(User Interface Kit),是用于iOS的图形用户界面工具包。与AppKit不同,它使用“UI”的前缀。
Core Foundation与Foundation
Xcode是什么
Xcode是苹果公司向开发人员提供的集成开发环境。前身是继承字NeXT公司的Project Builder。
集成开发环境(Integrated Development Environment) IDE
辅助开发人员开发软件的工具软件。