47、熟悉系统框架

框架:将一些列代码封装为动态库,并在其中放入描述其接口的头文件。

主要框架:

  • FoundationNSObjectNSArrayNSDictionary。。。(用NS前缀),还提供了collection等基础核心功能,还提供了字符串处理这样的复杂功能。如:NSLinguisticTagger可以解析字符串并找到其中的全名名词、动词、代词等。

  • CoreFoundationFoundation框架中许多功能,都可以在此框架中找到对应的C语言API。“无缝桥接”(toll-free bridging)功能可以把此框架中的C语言数据结构平滑转换为Foundation中的OC对象,也可以方向转换。

其他框架:

  • CFNetwork:提供了C语言级别的网络通信能力,将“BSD套接字”(BSD socket)抽象成易于使用的网络接口。而Foundation则将该框架里的部分内容封装为OC语言接口,以便进行网络通信,如:NSURLConnectionURL中下载数据

  • CoreAudio:提供C语言API可用来操作设备上的音频硬件。此框架属于比较难用的那种,因为音频处理本身就很复杂。所幸由这套API中可以抽象除另外一套OC式API,用后者来处理音频问题会简单些

  • AVFouncation:提供OC对象可用来回放并录制音频及视频,如:在UI视图类里播放视频

  • CoreData:提供OC接口可将对象放入数据库,便于持久保存。处理数据的获取及存储事宜,且可跨越Mac OS X及iOS平台

  • CoreText:提供C语言接口可以高效执行文字排版及渲染操作

可以看出OC编程一项重要特点:经常要使用底层C语言API,好处是可以绕过OC的运行期系统,从而提升指向速度。当然ARC只负责OC对象,所以使用这些API时尤其需要注意内存管理问题。

核心UI框架:Mac OS X的是AppKit、iOS的是UIKIt,都提供了构建在FoundatonCoreFoundation之上的OC类。

CoreAnimation:OC写成,提供了一些工具,UI框架用这些工具来渲染图形并播放动画。CoreAnimation本身不是框架,是QuartzCore框架的一部分。

CoreGaphics:C语言写成的框架,提供了2D渲染所必备的数据结构与函数。其中定义了:CGPointCGSizeCGRect等数据结构。

要点:

  • 许多系统框架都可以直接使用。其中最重要的是Foudation与CoreFoundation,这两个框架提供了构建应用程序所需的许多核心功能

  • 很多常见任务都能用框架来做,例如音频、视频处理、网络通信、数据管理等

  • 请记住:用纯C写成的框架于用OC写成的一样重要,若想成为优秀的OC开发者,应该掌握C语言的核心概念

Last updated

Was this helpful?