47、熟悉系统框架
框架:将一些列代码封装为动态库,并在其中放入描述其接口的头文件。
主要框架:
Foundation:NSObject、NSArray、NSDictionary。。。(用NS前缀),还提供了collection等基础核心功能,还提供了字符串处理这样的复杂功能。如:NSLinguisticTagger可以解析字符串并找到其中的全名名词、动词、代词等。CoreFoundation:Foundation框架中许多功能,都可以在此框架中找到对应的C语言API。“无缝桥接”(toll-free bridging)功能可以把此框架中的C语言数据结构平滑转换为Foundation中的OC对象,也可以方向转换。
其他框架:
CFNetwork:提供了C语言级别的网络通信能力,将“BSD套接字”(BSD socket)抽象成易于使用的网络接口。而Foundation则将该框架里的部分内容封装为OC语言接口,以便进行网络通信,如:NSURLConnection从URL中下载数据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,都提供了构建在Foundaton与CoreFoundation之上的OC类。
CoreAnimation:OC写成,提供了一些工具,UI框架用这些工具来渲染图形并播放动画。CoreAnimation本身不是框架,是QuartzCore框架的一部分。
CoreGaphics:C语言写成的框架,提供了2D渲染所必备的数据结构与函数。其中定义了:CGPoint、CGSize、CGRect等数据结构。
要点:
许多系统框架都可以直接使用。其中最重要的是
Foudation与CoreFoundation,这两个框架提供了构建应用程序所需的许多核心功能很多常见任务都能用框架来做,例如音频、视频处理、网络通信、数据管理等
请记住:用纯C写成的框架于用OC写成的一样重要,若想成为优秀的OC开发者,应该掌握C语言的核心概念
Last updated
Was this helpful?