Mac和iOS框架的命名约定是什么?

Ste*_*ser 8 macos naming-conventions ios

或换一种说法:

Mac和iOS框架中的'Kit','Toolbox','Core'和'Foundation'前缀/后缀命名约定是什么?

通过Apple的框架,这些前缀和后缀似乎遵循一种模式,但我没有在文档中找到任何解释确切差异的内容.这是我看到的基本模式:

  • 基础 - 低级别,C/Objc
  • 核心 - 中,C/Objc
  • 工具箱 - 一般服务
  • 套件 - 高,Objc

还有一些混合这些名称,我想这意味着框架是两个抽象级别之间的混合.例如Core FoundationCore Audio Kit.

流行的第三方框架也非常密切地遵循这些约定吗?RestKit非常适合,因为它是高级别的,但CorePlot似乎更好,如果不是谷歌与同名的javascript库碰撞.

Ger*_*Gil 7

我不认为它是一种惯例,它与可可的架构有关.我将尝试使用iOS架构来回答,但对于Mac来说也是如此.

从结构上讲,iOS分为4个主要层

  • 核心操作系统:它基本上不是内核
  • 核心服务:这是FoundationCore Foundation的基础,因此它可以操作字符串,集合等,它还可以操作GPS等硬件功能,您可以在这里找到Core Motion,核心位置以及系统配置.该层也称为Core Frameworks层,因为它处理OS的基本框架.
  • 媒体:你可能会猜测它处理媒体(音频,视频和图形)所以你会发现核心图形,核心动画,核心音频以及OpenGL ES和AVFoundation等框架
  • Cocoa Touch:在这里你会发现支持应用程序的高级框架,一些框架是UI 工具包,游戏工具包,还有消息用户界面,地址簿用户界面甚至单个名称,如iAd社交框架

每一层都取决于前一层.那么为什么Apple选择这个名字呢?通常他们使用Core这个词来指代框架(内核)的基础,通常这是直接操作基本操作的低级框架(在硬件中或从OS).一个明显的例子是Foundation,它基本上是Core Foundation或AVFoundation的面向对象的包装器,它依赖于Core Animation,Core AudioCore Media,因此您可以看到基础后缀不是最低级别,它取决于架构.通常,您可以使用工具箱一词来提供访问某些类型的外部文件/设备的接口或支持管理它们.通常,在提供一组您可以在应用程序上开箱即用的工具时,您会使用单词kit.

简而言之,命名框架的目标是根据架构的设计理解它包含的内容.但正如我之前所说,我不会说这是一个"惯例",它更像是一种"良好做法".