《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头文件的存储目录是:

/System/Library/Frameworks/Foundation.framework/Headers

上述头文件实际上与其存储位置的其他目录相链接。请读者查看这个目录中存储在系统上的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类似的文档窗口。


cf9c2f53e5ae10cafb6beae9c3045af2143aee53

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

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

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

#import <Foundation/Foundation.h>

因为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所示就是一个这样的图。


ed2609da8ee0d2d3e469408b44791edead6ecaec

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信号一样都能跟踪位置)的类和触摸式界面,并且去掉了不需要的类,比如支持打印的类

相关文章
|
1月前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
102 1
|
4天前
|
设计模式 前端开发 Swift
探索iOS开发:从初级到高级的旅程
【10月更文挑战第31天】在这篇文章中,我们将一起踏上iOS开发的旅程。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。我们将从基础开始,逐步深入到更高级的技术和概念。让我们一起探索iOS开发的世界吧!
|
7天前
|
设计模式 前端开发 Swift
探索iOS开发:从初级到高级的旅程
【10月更文挑战第28天】在这篇技术性文章中,我们将一起踏上一段探索iOS开发的旅程。无论你是刚入门的新手,还是希望提升技能的开发者,这篇文章都将为你提供宝贵的指导和灵感。我们将从基础概念开始,逐步深入到高级主题,如设计模式、性能优化等。通过阅读这篇文章,你将获得一个清晰的学习路径,帮助你在iOS开发领域不断成长。
32 2
|
13天前
|
安全 API Swift
探索iOS开发中的Swift语言之美
【10月更文挑战第23天】在数字时代的浪潮中,iOS开发如同一艘航船,而Swift语言则是推动这艘船前进的风帆。本文将带你领略Swift的独特魅力,从语法到设计哲学,再到实际应用案例,我们将一步步深入这个现代编程语言的世界。你将发现,Swift不仅仅是一种编程语言,它是苹果生态系统中的一个创新工具,它让iOS开发变得更加高效、安全和有趣。让我们一起启航,探索Swift的奥秘,感受编程的乐趣。
|
16天前
|
移动开发 网络协议 小程序
基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v9.1版已发布
RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统。RainbowChat源于真实运营的产品,解决了大量的屏幕适配、细节优化、机器兼容问题
47 5
|
15天前
|
Swift iOS开发 开发者
探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】在苹果生态系统中,SwiftUI的引入无疑为iOS应用开发带来了革命性的变化。本文将通过深入浅出的方式,带领读者了解SwiftUI的基本概念、核心优势以及如何在实际项目中运用这一框架。我们将从一个简单的例子开始,逐步深入到更复杂的应用场景,让初学者能够快速上手,同时也为有经验的开发者提供一些深度使用的技巧和策略。
43 1
|
3天前
|
存储 数据可视化 Swift
探索iOS开发之旅:从新手到专家
【10月更文挑战第33天】在这篇文章中,我们将一起踏上一场激动人心的iOS开发之旅。无论你是刚刚入门的新手,还是已经有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技能。我们将从基础的iOS开发概念开始,逐步深入到更复杂的主题,如用户界面设计、数据存储和网络编程等。通过阅读这篇文章,你将获得成为一名优秀iOS开发者所需的全面技能和知识。让我们一起开始吧!
|
4天前
|
移动开发 Java Android开发
探索Android与iOS开发的差异性与互联性
【10月更文挑战第32天】在移动开发的大潮中,Android和iOS两大平台各领风骚。本文将深入浅出地探讨这两个平台的开发差异,并通过实际代码示例,展示如何在各自平台上实现相似的功能。我们将从开发环境、编程语言、用户界面设计、性能优化等多个角度进行对比分析,旨在为开发者提供跨平台开发的实用指南。
23 0
|
1月前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
181 0