Core Image是一种用来为定格图片和视频图片提供近乎实时处理和分析的技术。它从 Core Graphic,Core Video和Image IO framework中操作各种图片数据类型,可以使用GPU和CPU的绘制路径。Core Image 隐藏了底层的图像处理,而提供了方便使用的编程接口API。你不需要知道OpenGL,OpenGL ES或者Metal影响GPU能力的细节,你也不需要了解GCD多核处理的优点。因为Core Image负责处理这些事情。

点我阅读全文...

AVFoundation 是可以用来播放和创建基于时间的视听媒体的几个framework之一。它提供了OC接口来处理基于时间的视听数据。比如,你可以使用AVFoundation来测试,创建,编辑或者重新编发媒体文件,你也可以从设备拿到输入流,并在实时捕捉和回放过程中操作视频。

点我阅读全文...

OC语言能在从编译时、连接时到运行时推迟许多决策。尽可能的,语言动态执行。这意味着语言不仅仅需要一个编译器,而且需要一个运行时系统来执行编译的代码。运行时系统扮演了一个OC的操作系统角色,让语言正常运行。 下面深入介绍NSObject class和OC程序如何与运行时交互,也介绍关于如何动态加载新class和对其他对象的消息转发,也提供关于在程序运行时如何找到队形的信息。

点我阅读全文...

全局命名空间中的元素(例如类,函数和全局变量)应该都具有唯一的名称。 虽然两级命名空间可帮助dynamic linker在运行时找到正确的符号,但该功能不会防止由于多重定义的符号而出现静态链接错误。 例如,假设两个不同的Framework 定义了一个具有相同名称的符号。 如果你要创建一个包含这两个Framework 的项目,那么如果引用了相关符号,则会遇到静态链接错误。 静态链接器负责选择使用哪个Framework ,然后生成dynamic linker所需的两级命名空间提示。 因为两个Framework 都定义了符号,所以静态链接器不能选择并生成错误。

点我阅读全文...

OS X作为桌面操作系统,大量使用framework来分发共享代码和资源。framework是一个层级目录,包含了共享的资源的单个包package,比如一个动态共享库,nib文件,image文件,localized string 文件,header文件和引用文档。多个app可以同时访问这些资源。系统按需要加载这些资源到内存,共享一份资源的copy给需要的app。 framework也是一个捆绑包,它的内容可以使用Core Foundation Bundle服务或Cocoa NSBundle类来访问。但是,与大多数bundle不同,framework bundle不会作为不透明文件出现在Finder中。 framework bundle是用户可以导航的标准目录。 这使得开发人员可以更轻松地浏览框架内容并查看任何包含的文档和头文件。

点我阅读全文...

Bundle时macOS和iOS的基础架构技术,用于封装代码和资源。bundle通过提供需要资源的已知位置的方式, 简化了开发者需要创建组合二进制文件的工作。bundles使用目录和文件提供更自然的组织类型——一种可以被在开发时和发布时都能修改的类型。 为了支持bundle,Cocoa和Core Foundation 提供了编程接口来访问bundles的内容。因为bundle使用一个有组织的结构,所有developer 理解bundle的基本组织规划是重点。

点我阅读全文...