其他 macOS Sierra Framework 更改
加速框架增强功能
已对适用于 macOS Sierra 的加速框架进行了以下增强:
- 添加了象形(整型微积分)。
- 添加了用于构造神经网络的基本函数。
- 添加了几何谓词函数,用于测试两个几何对象的交集等内容。
AppKit 框架增强功能
已对适用于 macOS Sierra 的 AppKit 框架进行了以下增强:
NSCollectionView
的多项增强功能,例如:- 可折叠分区 - 允许用户将集合视图部分折叠为单个水平行。
- 浮动标头 - 现在可以使用与 iOS 中的 UICollectionView 相同的 API(在流布局中)浮动页眉和页脚。
- 可滚动背景视图 - 集合视图背景现在可以设置为随内容一起滚动。
- 延迟视图布局传递已经过优化和扩展。
- 拖放 API 现在包括新的
NSFilePromiseProvider
和NSFilePromiseReceiver
类以支持拖动锁。 - 已向现有控件添加了多个便利构造函数:
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
引用NSPersistentStoreCoordinator
、NSManagedObjectModel 和其他 Core Data 配置资源。 NSManagedObject
中添加了几个新的便捷方法,使执行提取和创建子类变得更加容易。
有关详细信息,请参阅 Apple 的 Core Data 框架参考。
核心映像框架增强功能
已对 macOS Sierra 的核心映像框架进行了以下增强:
- CIFilter 类的
ImageWithExtent
方法可用于将自定义处理插入到筛选操作中。 在处理图像进行输出或显示时,Core Image 将调用筛选器之间给定的回调。 - 现在,应用可以通过在处理前后转换颜色空间,在核心图像上下文的工作颜色空间之外处理颜色空间中的图像。
- 核心映像内核现在可以请求特定的像素输出格式。
- 添加了以下新图像筛选器:
CINinePartTitled
、CINinePartStretched
、CIHueSaturationValueGradient
、CIEdgePreserveUpsampleFilter
和CIClamp
。
基础框架增强功能
已对 macOS Sierra 基础框架进行了以下增强:
- 使用 NSDimentions API 来表示、转换和显示许多最常见的物理单位,例如质量、长度、速度、持续时间和温度。
- 使用 NSISO8601DateFormatter 类分析和生成 ISO 8601 格式日期。
- 使用新的 NSDateInterval 类进行日期和时间间隔计算(例如持续时间),以比较间隔并测试间隔交集。
- 使用 NSPersonNameComponentsFormatter 类从字符串分析人员姓名的元素。
- 使用新的 NSURLSessionTaskMetrics 类获取 URL 网络会话的指标。
有关详细信息,请参阅 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(GKDecisionTree 和 GKDecisionNode)以增强游戏生成 AI。
- 使用新的 GKAgent3D 和 GKGraphNode3D 类向现有代理和路径查找行为添加了 3D 支持。
- 使用新的 GKMeshGraph 类提供高性能、外观自然的路径。
- 新的 GKScene 和 GKSKNodeComponent 类使 GameplayKit 和 SpriteKit 的组合变得比以往更容易。
Metal 框架增强功能
已对适用于 macOS Sierra 的 Metal 框架 进行了以下增强:
- 3D 应用和游戏现在可以使用 Tessellation 通过 GPU 高效渲染复杂的场景和几何图形。
- 使用函数专用化为场景创建高度优化的材料和灯光组合函数集合。
- 使用资源堆和无内存渲染目标提供对资源分配的精细控制,以优化基于 Metal 的应用的性能。
有关详细信息,请参阅 Apple 的 Metal 编程指南。
模型 I/O 框架增强功能
已对适用于 macOS Sierra 的模型 I/O 框架进行了以下增强:
- 现在支持 USD 文件格式。
- 使用新的
MDLMaterialPropertyGraph
类可以轻松支持模型的运行时更改。 - MDLVoxelArray 类中添加了有符号距离字段支持。
- 使用新的
MDLLightProbeIrradianceDataSource
类来协助光探测放置。
照片框架增强功能
已对 macOS Sierra 的照片框架进行了以下增强:
- 实时照片编辑现在可用于支持照片框架的应用和照片编辑扩展(在照片和相机应用内部使用)。
- 使用新的 PHLivePhotoEditingContext 类将编辑应用于实况照片的视频和静态内容。
- 使用 CIImageProcessorInput 和 CIImageProcessorOutput 类可以利用新的 Core Image 处理器功能来执行编辑。
- 为了支持实时照片,PHLivePhoto 和 PHLivePhotoView 类已从 iOS 移植到 macOS。
SceneKit 框架增强功能
已对适用于 macOS Sierra 的 SceneKit 框架进行了以下增强:
- 现在,包括一个新的基于物理的渲染 (PBR) 系统,以便使用更简单的资产创作实现更现实的结果。
- 使用新的 SCNLightingModelPhysicallyBased 着色模型可生成各种逼真的着色效果,同时仅需要三个基本属性(
Diffuse
、Metalness
和Roughness
)。 - 由于 PBR 底纹最适合基于环境的照明,请使用该
LightingEnvironment
属性将基于图像的照明分配给整个场景。 - 使用该
IESProfileURL
属性导入基于真实世界值的照明装置,例如强度(以流明亮度为单位)和颜色温度(以开尔文度为单位)。 - SCNCamera 类可以通过使用 HDR 功能和效果来提供更高的真实感。 使用自适应曝光创建自动效果或使用调色、颜色边缘和颜色分级来为游戏添加电影效果。
- PBR 和 HDR 相机功能都提供了比传统渲染技术更好的结果,因此,SceneKit 现在在线性颜色空间中执行所有颜色计算(在宽颜色设备显示器上使用 P3 色域)。
- SceneKit 现在通过读取颜色配置文件信息来匹配所有颜色。
- SceneKit 解释所有着色器类型的线性 RGB 颜色空间中的颜色分量值。
- 由于 SceneKit 会读取并调整纹理图像中的颜色配置文件信息,因此请对所有图像使用资产目录以确保提供此信息。
- 通过在应用的
Info.plist
中指定SCNDisableLinearSpaceRendering
和SCNDisableWideGamut
键,可以禁用线性颜色空间渲染和宽色。 - 生成任意多边形灵长类动物(从文件加载或以编程方式生成)以使用新的 SCNGeometryPrimitiveTypePolygon 类指定几何形状。
安全框架增强功能
已对 macOS Sierra 的安全框架进行了以下增强:
SecKey
接口已在所有平台(iOS、tvOS、watchOS 和 macOS)中实现现代化和统一。
SpriteKit 框架增强功能
已对适用于 macOS Sierra 的 SpriteKit 框架进行了以下增强:
- 图块现在支持使用
SKTileMapMode
、SKTileGroup
、SKTileGroupRule
和SKTileSet
类的 2D、2.5D 和横向卷轴游戏的方形、六边形和等距图块形状。 - 使用新的
SKWarpGeometry
类拉伸或扭曲 SKSpriteNode 或 SKEffectNode 渲染。 新的 SKAction 类可用于制作扭曲效果之间的过渡动画。 - 自定义着色器可以提供属性 (
SKAttribute
),使用该着色器的每个节点可以通过提供属性值 (SKAttributeValue
) 来单独配置这些属性。 - SKView 类提供了多种新方法,可以对场景的渲染时间和方式进行精细控制。
新框架
已将以下框架添加到 macOS Sierra:
- 意向框架 - 此框架允许应用检查交互(例如位置或用户操作),并根据该信息执行操作。
- SafariServices Framework - 此框架允许应用为 macOS 和 iOS 开发 Safari 的应用扩展(例如内容阻止程序)。