其他 macOS Sierra Framework 更改

加速框架增强功能

已对适用于 macOS Sierra 的加速框架进行了以下增强:

  • 添加了象形(整型微积分)。
  • 添加了用于构造神经网络的基本函数。
  • 添加了几何谓词函数,用于测试两个几何对象的交集等内容。

AppKit 框架增强功能

已对适用于 macOS Sierra 的 AppKit 框架进行了以下增强:

  • NSCollectionView 的多项增强功能,例如:
    • 可折叠分区 - 允许用户将集合视图部分折叠为单个水平行。
    • 浮动标头 - 现在可以使用与 iOS 中的 UICollectionView 相同的 API(在流布局中)浮动页眉和页脚。
    • 可滚动背景视图 - 集合视图背景现在可以设置为随内容一起滚动。
  • 延迟视图布局传递已经过优化和扩展。
  • 拖放 API 现在包括新的 NSFilePromiseProviderNSFilePromiseReceiver 类以支持拖动锁。
  • 已向现有控件添加了多个便利构造函数:
    • NSButton 包括用于创建按钮、复选框和单选按钮的新构造函数。
    • NSTextField 包括用于创建包装和非包装标签、特性化标签和可编辑文本字段的新构造函数。
    • NSSegmentedControl 包括用于从一组标签或图像创建分段控件的新构造函数。
    • NSSlider 包括用于创建水平线性滑块的新构造函数。
    • NSImageView 包括用于从给定 NSImage 创建不可编辑图像视图的新构造函数。
  • NSGridView 已添加到网格中的子视图集合,其中包含可动态隐藏或显示的可变大小的行和列。

AVFoundation Framework 增强功能

已对 macOS Sierra 的 AVFoundation Framework 进行了以下增强:

  • 在 macOS 中,应用不再需要根据内容类型实现不同的 AVPlayerItem 行为。 只需设置 Rate 属性,AVFoundation 将确定何时有足够的内容可供播放而不会停止。
  • 新的 AVPlayerLooper 类可以更轻松地在播放期间循环播放给定的媒体片段。
  • AVAssetDownloadURLSession 类允许下载并稍后播放 FairPlay 加密的 HLS 流。

核心数据框架增强功能

已对适用于 macOS Sierra 的核心数据框架进行了以下增强:

  • NSManagedObjectContext 对象支持并发故障处理和提取,无需序列化。
  • NSPersistentStoreCoordinator 类维护 SQLite 数据存储池。
  • WAL 日志模式下具有 SQLite 数据存储的 NSManagedObjectContext 对象支持新的查询生成功能,其中托管对象上下文 (MOC) 可以固定到特定的数据库版本,以便将来提取和故障处理事务。
  • 使用高级 NSPersistenceContainer 引用 NSPersistentStoreCoordinatorNSManagedObjectModel 和其他 Core Data 配置资源。
  • NSManagedObject 中添加了几个新的便捷方法,使执行提取和创建子类变得更加容易。

有关详细信息,请参阅 Apple 的 Core Data 框架参考

核心映像框架增强功能

已对 macOS Sierra 的核心映像框架进行了以下增强:

  • CIFilter 类的 ImageWithExtent 方法可用于将自定义处理插入到筛选操作中。 在处理图像进行输出或显示时,Core Image 将调用筛选器之间给定的回调。
  • 现在,应用可以通过在处理前后转换颜色空间,在核心图像上下文的工作颜色空间之外处理颜色空间中的图像。
  • 核心映像内核现在可以请求特定的像素输出格式。
  • 添加了以下新图像筛选器:CINinePartTitledCINinePartStretchedCIHueSaturationValueGradientCIEdgePreserveUpsampleFilterCIClamp

基础框架增强功能

已对 macOS Sierra 基础框架进行了以下增强:

有关详细信息,请参阅 Apple OS X v10.12 和 iOS 10 基础发行说明

GameKit 框架增强功能

已对适用于 macOS Sierra 的 GameKit 框架进行了以下增强:

  • Game Center App 已弃用,并从 macOS 中删除。 如果应用使用 GameKit,则它必须提供自己的界面来显示 GameKit 功能,例如排行榜等
  • GKCloudPlayer 类已实现新的仅限 iCloud 的帐户类型。
  • 新的 GKGameSession 类提供用于管理 Game Center 上的持久数据存储的通用解决方案。 GKGameSession 维护玩家列表,应用负责实现参与者日期在玩家之间存储、检索或交换的方式和时间。 在许多情况下,游戏会话可以取代现有的回合制比赛、实时比赛或持久的游戏保存方法。

GamePlayKit 框架增强功能

已对适用于 macOS Sierra 的 GamePlayKit 框架进行了以下增强:

  • 添加了程序噪声生成功能,可用于增强自然纹理的真实感、为相机运动添加真实感并帮助生成丰富的游戏世界。
  • 使用空间分区对游戏世界数据进行分区以实现高效搜索。
  • 添加了新的蒙特卡洛策略师 (GKMonteCarloStrategist),以进行详尽的可能的移动计算。
  • 添加了新的决策树 API(GKDecisionTreeGKDecisionNode)以增强游戏生成 AI。
  • 使用新的 GKAgent3DGKGraphNode3D 类向现有代理和路径查找行为添加了 3D 支持。
  • 使用新的 GKMeshGraph 类提供高性能、外观自然的路径。
  • 新的 GKSceneGKSKNodeComponent 类使 GameplayKit 和 SpriteKit 的组合变得比以往更容易。

Metal 框架增强功能

已对适用于 macOS Sierra 的 Metal 框架 进行了以下增强:

  • 3D 应用和游戏现在可以使用 Tessellation 通过 GPU 高效渲染复杂的场景和几何图形
  • 使用函数专用化为场景创建高度优化的材料和灯光组合函数集合。
  • 使用资源堆和无内存渲染目标提供对资源分配的精细控制,以优化基于 Metal 的应用的性能。

有关详细信息,请参阅 Apple 的 Metal 编程指南

模型 I/O 框架增强功能

已对适用于 macOS Sierra 的模型 I/O 框架进行了以下增强:

  • 现在支持 USD 文件格式。
  • 使用新的 MDLMaterialPropertyGraph 类可以轻松支持模型的运行时更改。
  • MDLVoxelArray 类中添加了有符号距离字段支持。
  • 使用新的 MDLLightProbeIrradianceDataSource 类来协助光探测放置。

照片框架增强功能

已对 macOS Sierra 的照片框架进行了以下增强:

SceneKit 框架增强功能

已对适用于 macOS Sierra 的 SceneKit 框架进行了以下增强:

  • 现在,包括一个新的基于物理的渲染 (PBR) 系统,以便使用更简单的资产创作实现更现实的结果。
  • 使用新的 SCNLightingModelPhysicallyBased 着色模型可生成各种逼真的着色效果,同时仅需要三个基本属性(DiffuseMetalnessRoughness)。
  • 由于 PBR 底纹最适合基于环境的照明,请使用该 LightingEnvironment 属性将基于图像的照明分配给整个场景。
  • 使用该 IESProfileURL 属性导入基于真实世界值的照明装置,例如强度(以流明亮度为单位)和颜色温度(以开尔文度为单位)。
  • SCNCamera 类可以通过使用 HDR 功能和效果来提供更高的真实感。 使用自适应曝光创建自动效果或使用调色、颜色边缘和颜色分级来为游戏添加电影效果。
  • PBR 和 HDR 相机功能都提供了比传统渲染技术更好的结果,因此,SceneKit 现在在线性颜色空间中执行所有颜色计算(在宽颜色设备显示器上使用 P3 色域)。
  • SceneKit 现在通过读取颜色配置文件信息来匹配所有颜色。
  • SceneKit 解释所有着色器类型的线性 RGB 颜色空间中的颜色分量值。
  • 由于 SceneKit 会读取并调整纹理图像中的颜色配置文件信息,因此请对所有图像使用资产目录以确保提供此信息。
  • 通过在应用的 Info.plist 中指定 SCNDisableLinearSpaceRenderingSCNDisableWideGamut 键,可以禁用线性颜色空间渲染和宽色。
  • 生成任意多边形灵长类动物(从文件加载或以编程方式生成)以使用新的 SCNGeometryPrimitiveTypePolygon 类指定几何形状。

安全框架增强功能

已对 macOS Sierra 的安全框架进行了以下增强:

  • SecKey 接口已在所有平台(iOS、tvOS、watchOS 和 macOS)中实现现代化和统一。

SpriteKit 框架增强功能

已对适用于 macOS Sierra 的 SpriteKit 框架进行了以下增强:

  • 图块现在支持使用 SKTileMapModeSKTileGroupSKTileGroupRuleSKTileSet 类的 2D、2.5D 和横向卷轴游戏的方形、六边形和等距图块形状。
  • 使用新的 SKWarpGeometry 类拉伸或扭曲 SKSpriteNodeSKEffectNode 渲染。 新的 SKAction 类可用于制作扭曲效果之间的过渡动画。
  • 自定义着色器可以提供属性 (SKAttribute),使用该着色器的每个节点可以通过提供属性值 (SKAttributeValue) 来单独配置这些属性。
  • SKView 类提供了多种新方法,可以对场景的渲染时间和方式进行精细控制。

新框架

已将以下框架添加到 macOS Sierra:

  • 意向框架 - 此框架允许应用检查交互(例如位置或用户操作),并根据该信息执行操作。
  • SafariServices Framework - 此框架允许应用为 macOS 和 iOS 开发 Safari 的应用扩展(例如内容阻止程序)。