《iOS 9 开发指南》——第1章,第1.4节iOS 9中的常用开发框架
本节书摘来自异步社区《iOS 9 开发指南》一书中的第1章,第1.4节 iOS 9中的常用开发框架,作者 管蕾,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.4 iOS 9中的常用开发框架
iOS 9 开发指南
图片 2 知识点讲解:光盘:视频知识点第1章 iOS 9中的常用开发框架.mp4
为了提高开发iOS程序的效率,除了可以使用Xcode集成开发工具之外,还可以使用第三方提供的框架,这些框架为我们提供了完整的项目解决方案,是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以便使研发程序变得更容易。在OSX下的Mac操作系统中,大约存在80个框架,这些框架可以用来开发应用程序,处理Mac的Address Book结构、刻制CD、播放DVD、使用QuickTime播放电影和播放歌曲等。
在iOS的众多框架中,其中有两个最为常用的框架:Foundation框架和Cocoa框架。
1.4.1 Foundation框架简介
在OSX下的Mac操作系统中,为所有程序开发奠定基础的框架称为Foundation框架。该框架允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合。其他功能包括处理日期和时间、自动化的内存管理、处理基础文件系统、存储(或归档)对象以及处理几何数据结构(如点和长方形)。
Foundation头文件的存储目录是:
/System/Library/Frameworks/Foundation.framework/Headers
上述头文件实际上与其存储位置的其他目录相链接。请读者查看这个目录中存储在系统上的Foundation框架文档,熟悉它的内容和用法简介。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-26类似的文档窗口。
如果向下滚动标有NSString Class Reference的面板,将发现(在其他内容中间)一个该类所支持的所有方法的列表。这是一个能够获得有关实现哪些方法等信息的便捷途径,包括它们如何工作以及它们的预期参数。
读者们可以在线访问developer.apple.com/referencelibrary,打开Foundation参考文档(通过Cocoa、Frameworks和Foundation Framework Reference链接),在这个站点中还能够发现一些介绍某些特定编程问题的文档,例如内存管理、字符串和文件管理。除非订阅的是某个特定文档集,否则在线文档要比存储在计算机硬盘中的文档从时间上讲更新一些,如图1-26所示。
在Foundation框架中包括了大量可供使用的类、方法和函数。在Mac OS X上,有125个可用的头文件。作为一种简便的形式,我们可以使用如下代码头文件。
#import <Foundation/Foundation.h>
因为Foundation.h文件实际上导入了其他所有Foundation头文件,所以不必担心是否导入了正确的头文件,Xcode会自动将这个头文件插入到程序中。虽然使用上述代码会显著地增加程序的编译时间,但是通过使用预编译的头文件,可以避免这些额外的时间开销。预编译的头文件是经过编译器预先处理过的文件。在默认情况下,所有Xcode项目都会受益于预编译的头文件。在本章使用每个对象时都会用到这些特定的头文件,这会有助于我们熟悉每个头文件所包含的内容。
1.4.2 Cocoa框架简介
Application Kit框架包含广泛的类和方法,它们能够开发交互式图形应用程序,使得开发文本、菜单、工具栏、表、文档、剪贴板和窗口等应用变得十分简便。在Mac OS X操作系统中,术语Cocoa是指Foundation框架和Application kit框架。术语Cocoa Touch是指Foundation框架和UIKit框架。由此可见,Cocoa是一种支持应用程序提供丰富用户体验的框架,它实际上由如下两个框架组成。
Foundation框架。
Application Kit(或AppKit)框架。
其中后者用于提供与窗口、按钮、列表等相关的类。在编程语言中,通常使用示意图来说明框架最顶层应用程序与底层硬件之间的层次,图1-27所示就是一个这样的图。
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-27中指出的那样,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和Wi-Fi信号一样都能跟踪位置)的类和触摸式界面,并且去掉了不需要的类,如支持打印的类。
1.4.3 iOS程序框架
总的来说iOS程序有两类框架:一类是游戏框架,另一类是非游戏框架。接下来将要介绍的是非游戏框架,即基于iPhone用户界面标准控件的程序框架。
典型的iOS程序包含一个Window(窗口)和几个UIViewController(视图控制器),每个UIViewController可以管理多个UIView(在iPhone里你看到的、感觉到的都是UIView,也可能是UITableView、UIWebView和UIImageView等)。这些UIView之间如何进行层次迭放、显示、隐藏、旋转和移动等都由UIViewController进行管理,而UIViewController之间的切换,通常情况是通过UINavigationController、UITabBarController或UISplitViewController进行切换。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《移动App测试的22条军规》——第23章,第7节测试微信App对于操作系统特性的支持程度
本节书摘来自异步社区《移动App测试的22条军规》一书中的第23章,第7节测试微信App对于操作系统特性的支持程度,作者 黄勇,更多章节内容可以访问云栖社区“异步社区”公众号查看 23.7 测试微信App对于操作系统特性的支持程度由于微信App不支持Android操作系统的Widget,所以没有办法对微信App的Widget进行测试。 不过由于Android 4.4.4支持选择ART运行环境,我们可以针对微信App在ART运行环境上的表现进行测试。具体来说,在“Developer options”(开发者选项)中选择使用ART运行环境(如图23.20所示),我们就可以对微信App的各项功能进行测试了。除此之外,我们还可以对微信App在ART运行环境下的安装进行测试
- 下一篇
《C和C++代码精粹》——2.6 const指针
本节书摘来自异步社区出版社《C和C++代码精粹》一书中的第2章,第2.6节,作者: 【美】Chuck Allison,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 const指针 C和C++代码精粹注意memcpy函数第二个参数中的const关键字。这个关键字告诉编译器此函数将不会改变source指向的任何值(除了强制类型转换)。当把指针作为参数传递时,总是合适地使用const限定符是一个很好的习惯,它不仅可以防止你无意中错误的赋值,而且还可以防止在作为参数将指针传递给函数时可能会修改了本不想改变的指针所指向的对象的值。例如,如果在程序清单2.6中的声明是: const int i=7,j=8; 有可能因为下面这条语句而得到警告: swap(&i,&j); 因为swap的确改变了其参数所指的变量的值。 如果浏览一下你所使用的编译器提供的标准头文件,就会看到const。在一个声明中,当const出现在星号前面的任意位置时,表明所指向的内容不会被改变: const char *p; //指向常字符的指针 char const *q; //同样是指向常字符的指...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2配置默认Tomcat设置,开启更多高级功能