天天看点

《iOS 8开发指南(第2版)》——第1章,第1.6节iOS的常用开发框架

本节书摘来自异步社区《ios 8开发指南(第2版)》一书中的第1章,第1.6节ios的常用开发框架,作者 管蕾,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.6 ios的常用开发框架

ios 8开发指南(第2版)

为了提高开发ios程序的效率,除了可以使用xcode集成开发工具之外,还可以使用第三方提供的框架,这些框架为我们提供了完整的项目解决方案,是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。在osx下的mac操作系统中,大约存在80个框架,这些框架可以用来开发应用程序,处理mac的address book结构、刻制cd、播放dvd、使用quicktime播放电影、播放歌曲等。

在ios的众多框架中,其中有两个最为常用的框架:foundation框架和cocoa框架。

1.6.1 foundation框架简介

在osx下的mac操作系统中,为所有程序开发奠定基础的框架称为foundation框架。该框架允许使用一些基本对象,例如数字和字符串,以及一些对象集合,如数组、字典和集合。其他功能包括处理日期和时间、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形)。

foundation头文件的存储目录是:

上述头文件实际上与其存储位置的其他目录相链接。请读者查看这个目录中存储在系统上的found-ation框架文档,熟悉它的内容和用法简介。foundation框架文档存储在我们计算机系统中(位于/develop/documentation目录中)。另外,apple网站上也提供了此说明文档。大多数文档为html格式的文件,可以通过浏览器查看。同时也提供了acrobat pdf文件。这个文档中包含foundation的所有类及其实现的所有方法和函数的描述。

如果正在使用xcode开发程序,可以通过xcode的help菜单中的documentation窗口轻松访问文档。通过这个窗口,可以轻松搜索和访问存储在计算机本机中或者在线的文档。如果正在xcode中编辑文件并且想要快速访问某个特定头文件、方法或类的文档,可以通过高亮显示编辑器窗口中的文本并右键单击的方法来实现。在出现的菜单中,可以适当选择find selected text in documentation或者find selected text in api reference,xcode将搜索文档库,并显示与查询相匹配的结果。

看一看它是如何工作的。类nsstring是一个foundation类,可以使用它来处理字符串。假设正在编辑某个使用该类的程序,并且想要获得更多关于这个类及其方法的信息,无论何时,当单词nsstring出现在编辑窗口时,都可以将其高亮显示并右键单击。如果从出现的菜单中选择find selected text in api reference,会得到一个外观与图1-60类似的文档窗口。

《iOS 8开发指南(第2版)》——第1章,第1.6节iOS的常用开发框架

如果向下滚动标有nsstring class reference的面板,将发现(在其他内容中间)一个该类所支持的所有方法的列表。这是一个能够获得有关实现哪些方法等信息的便捷途径,包括它们如何工作以及它们的预期参数。

读者可以在线访问developer.apple.com/referencelibrary,打开foundation参考文档(通过cocoa、frameworks、foundation framework reference链接),在这个站点中还能够发现一些介绍某些特定编程问题的文档,例如内存管理、字符串和文件管理。除非订阅的是某个特定文档集,否则在线文档要比存储在计算机硬盘中的文档从时间上讲更新一些,如图1-60所示。

在foundation框架中包括了大量可供使用的类、方法和函数。在mac os x上,大约有125个可用的头文件。作为一种简便的形式,我们可以使用如下代码头文件:

因为foundation.h文件实际上导入了其他所有foundation头文件,所以不必担心是否导入了正确的头文件,xcode会自动将这个头文件插入到程序中。虽然使用上述代码会显著地增加程序的编译时间,但是,通过使用预编译的头文件,可以避免这些额外的时间开销。预编译的头文件是经过编译器预先处理过的文件。在默认情况下,所有xcode项目都会受益于预编译的头文件。在本章使用每个对象时都会用到这些特定的头文件,这会有助于我们熟悉每个头文件所包含的内容。

1.6.2 cocoa框架简介

application kit框架包含广泛的类和方法,它们能够开发交互式图形应用程序,使得开发文本、菜单、工具栏、表、文档、剪贴板和窗口等应用变得十分简便。在mac os x操作系统中,术语cocoa是指foundation框架和application kit框架。术语cocoa touch是指foundation框架和uikit框架。由此可见,cocoa是一种支持应用程序、提供丰富用户体验的框架,它实际上由如下两个框架组成:

foundation框架;

application kit(或appkit)框架。

其中后者用于提供与窗口、按钮、列表等相关的类。在编程语言中,通常使用示意图来说明框架最顶层应用程序与底层硬件之间的层次,如图1-61所示就是一个这样的图。

《iOS 8开发指南(第2版)》——第1章,第1.6节iOS的常用开发框架

user:用户。

application:应用程序。

cocoa(foundation and appkit frameworks):cocoa(foundation和appkit框架)。

application services:应用程序服务。

core services:核心服务。

mac os x kernel:mac os x内核。

computer resources (memory, disk,display, etc.):计算机资源(内存、磁盘、显示器等)。

内核以设备驱动程序的形式提供与硬件的底层通信,它负责管理系统资源,包括调度要执行的程序、管理内存和电源,以及执行基本的i/o操作。

核心服务提供的支持比它上面层次更加底层或更加“核心”。例如,在mac os x中主要对集合、网络、调试、文件管理、文件夹、内存管理、线程、时间和电源的管理。

应用程序服务层包含对打印和图形呈现的支持,包括quartz、opengl和quicktime。由此可见,cocoa层直接位于应用程序层之下。正如图1-61中指出的那样,cocoa包括foundation和appkit框架。foundation框架提供的类用于处理集合、字符串、内存管理、文件系统、存档等。通过appkit框架中提供的类,可以管理视图、窗口、文档等用户界面。在很多情况下,foundation框架为底层核心服务层(主要用过程化的c语言编写)中定义的数据结构定义了一种面向对象的映射。

cocoa框架用于mac os x桌面与笔记本电脑的应用程序开发,而cocoa touch框架用于iphone与itouch的应用程序开发。cocoa和cocoa touch都有foundation框架。然而在cocoa touch下,uikit代替了appkit框架,以便为很多相同类型的对象提供支持,如窗口、视图、按钮、文本域等。另外,cocoa touch还提供使用加速器(它与gps和wifi信号一样都能跟踪位置)的类和触摸式界面,并且去掉了不需要的类,比如支持打印的类

继续阅读