[译]Foundation框架|青训营笔记

289 阅读10分钟

这是我参与「第四届青训营-iOS客户端」笔记创作活动的的第五天。

此篇文章旨在翻译苹果官网中Foundation框架内容。原文地址:developer.apple.com/documentati…

Foundation框架

访问基本数据类型、集合和操作系统服务,为您的应用定义基本功能层。版本要求:iOS 2.0+、iPadOS 2.0+、macOS 10.0+、Mac Catalyst 13.0+、tvOS 9.0+、watchOS 2.0+。

概述

Foundation 框架为应用程序和框架提供了基础功能层,包括数据存储和持久性、文本处理、日期和时间计算、排序和过滤以及网络。Foundation 定义的类、协议和数据类型在 macOS、iOS、watchOS 和 tvOS SDKs 中使用。

主题

基本功能

1.数字、数据和基本值

(在触摸层中使用的原始值和其他基本类型)

数字

NSInteger 描述一个整数。

NSUInteger 描述一个无符号整数。

NSDecimal 表示以 10 为基数的结构。

NSDecimalNumber 用于表示和执行以 10 为基数的算术的对象。

NSNumber 原始标量数值的对象包装器。

NSNumberFormatter 在数值和它们的文本表示之间进行转换的格式化程序。

二进制数据

NSData 内存中的静态字节缓冲区。

NSMutableData 表示内存中动态字节缓冲区的对象。

URLs

NSURL 表示资源位置的对象,例如远程服务器上的项目或本地文件的路径。

NSURLComponents 一个将URL解析成并从其构成部分构建URL的对象。

NSURLQueryItem 表示 URL 查询部分中项目的单个名称/值对的对象。

唯一标识符

NSUUID 可用于标识类型、接口和其他项目的通用唯一值。

几何

CGFloat 所有浮点值的基本类型。

NSPoint 笛卡尔坐标系中的一个点。

NSSize 二维大小。

NSRect 长方形。

NSAffineTransform 图形坐标变换。

NSEdgeInsets 描述两个矩形的边缘之间的距离。

范围

NSRange 用于描述系列的一部分的结构,例如字符串中的字符或数组中的对象。

2.字符串和文本

(创建和处理 Unicode 字符串,使用正则表达式查找模式,并对文本执行自然语言分析。)

字符串

NSString 一个静态的纯文本 Unicode 字符串对象。

NSMutableString 动态纯文本 Unicode 字符串对象。

StringEncodings 将原始数据转换为字符串表示和从字符串表示转换时使用的编码标准常量。

带有元数据的字符串

NSAttributedString 与部分文本相关联的属性(例如视觉样式、超链接或可访问性数据)的字符串。

NSMutableAttributedString 一个可变字符串,其部分文本具有相关属性(例如视觉样式、超链接或可访问性数据)。

对象

NSCharacterSet 表示用于搜索操作的一组固定 Unicode 字符值的对象。

NSMutableCharacterSet 表示用于搜索操作的一组可变 Unicode 字符值的对象。

unichar UTF-16 代码单元的类型。

模式匹配

NSScanner 一种字符串解析器,用于扫描字符集中的子字符串或字符,以及十进制、十六进制和浮点表示形式的数值。

NSRegularExpression 应用于 Unicode 字符串的已编译正则表达式的不可变表示。

NSDataDetector 一个专门的正则表达式对象,它与预定义数据模式的自然语言文本相匹配。

NSTextCheckingResult 在分析文本块期间发现的文本内容的出现,例如在匹配普通表达式时。

NSNotFound 一个值,指示无法找到或不存在请求的项目。

拼写和语法

NSSpellServer 您的应用程序用来为系统中运行的其他应用程序提供拼写检查服务的服务器。

NSSpellServerDelegate 由拼写服务器的委托实现的可选方法。

本土化

NSLocale 有关用于格式化数据以进行演示的语言、文化和技术惯例的信息。

NSOrthography 自然语言文本的语言内容的描述,通常用于拼写和语法检查。

NSLocalizedString 从默认表中返回字符串的本地化版本,Xcode 在导出本地化时自动生成。

NSLocalizedStringFromTable 从您指定的表中返回字符串的本地化版本,在导出本地化时 Xcode 会自动生成该版本。

NSLocalizedStringFromTableInBundle 从您指定的表和捆绑包中返回字符串的本地化版本,在导出本地化时 Xcode 会自动生成该版本。

NSLocalizedStringWithDefaultValue 返回由您指定的表中的键标识的字符串的本地化版本,Xcode 在导出本地化时自动生成。

3.收集

(使用数组、字典、集合和专门的集合来存储和迭代对象或值组。)

基本收集

NSArray 对象的静态有序集合。

NSMutableArray 对象的动态有序集合。

NSDictionary 与唯一键关联的对象的静态集合。

NSMutableDictionary 与唯一键关联的对象的动态集合。

NSSet 唯一对象的静态、无序集合。

NSMutableSet 唯一对象的动态无序集合。

Indexes

NSIndexPath 一个索引列表,它们共同表示嵌套数组树中特定位置的路径。

NSIndexSet 表示另一个集合中的索引的唯一整数值的不可变集合。

NSMutableIndexSet 表示另一个集合中的索引的唯一整数值的可变集合。

特定集合

NSCountedSet 一个可变的、无序的不同对象的集合,可能在集合中出现多次。

NSOrderedSet 唯一对象的静态有序集合。

NSMutableOrderedSet 独特对象的动态有序集合。

可清除集合

NSCache 一个可变集合,用于临时存储在资源不足时会被驱逐的临时键值对。

NSPurgeableData 一个可变数据对象,其中包含不再需要时可以丢弃的字节。

指针集合

NSPointerArray 类似于数组的集合,但具有更广泛的可用内存语义。

NSMapTable 类似于字典的集合,但具有更广泛的可用内存语义。

NSHashTable 类似于集合的集合,但具有更广泛的可用内存语义。

迭代

NSEnumerator 一个抽象类,其子类枚举对象的集合,例如数组和字典。

NSFastEnumeration 对象采用以支持快速枚举的协议。

NSEnumerationOptions 块枚举操作的选项。

NSSortOptions 块排序操作的选项。

特殊语义值

NSNull 用于表示不允许nil值的集合对象中的空值的单例对象。

NSNotFound 一个值,指示无法找到或不存在请求的项目。

4.日期和时间

(比较日期和时间,并执行日历和时区计算。)

日期展示

NSDate 特定时间点的表示,独立于任何日历或时区。

NSDateInterval 表示特定开始日期和结束日期之间时间跨度的对象。

NSTimeInterval 间隔时长。

日历计算

NSDateComponents 在日历系统和时区中以单位(例如年、月、日、小时和分钟)指定日期或时间的对象。

NSCalendar 定义日历单位和绝对时间点之间的关系,提供计算和比较日期的功能。

NSTimeZone 有关与特定地缘政治区域相关的标准时间约定的信息。

日期格式

NSDateFormatter 在日期及其文本表示之间转换的格式化程序。

NSDateComponentsFormatter 创建时间量的字符串表示形式的格式化程序。

NSDateIntervalFormatter 创建时间间隔的字符串表示形式的格式化程序。

NSISO8601DateFormatter 在日期和它们的 ISO 8601 字符串表示之间转换的格式化程序。

国际化

NSLocale 有关用于格式化数据以进行演示的语言、文化和技术惯例的信息。

5.单位和测量

(使用物理尺寸标注数字量,以允许在相关单位之间进行区域感知格式化和转换。)

重点

NSMeasurement 用度量单位标记的数字量,支持单位转换和单位感知计算。

NSUnit 表示度量单位的抽象类。

NSDimension 表示维度度量单位的抽象类。

转换

NSUnitConverter 一个抽象类,描述了如何在单位与其维度的基本单位之间进行转换。

NSUnitConverterLinear 描述如何使用线性方程在单位之间进行转换。

物理尺寸

NSUnitArea 面积的计量单位。

NSUnitLength 长度的度量单位。

NSUnitVolume 体积的计量单位。

NSUnitAngle 平面角度和旋转的度量单位。

质量、重量和力

NSUnitMass 质量的计量单位。

NSUnitPressure 压力的计量单位。

时间和运动

NSUnitAcceleration 加速度的度量单位。

NSUnitDuration 一段时间内的计量单位。

NSUnitFrequency 频率的度量单位。

NSUnitSpeed 速度的度量单位。

能量、热量和亮度

NSUnitEnergy 能量的计量单位。

NSUnitPower 功率的计量单位。

NSUnitTemperature 温度的计量单位。

NSUnitIlluminance 照度的度量单位。

NSUnitElectricCharge 电荷的计量单位。

NSUnitElectricCurrent 电流的计量单位。

NSUnitElectricPotentialDifference 电位差的度量单位。

NSUnitElectricResistance 电阻的测量单位。

浓度和色散量

NSUnitConcentrationMass 质量浓度的度量单位。

NSUnitDispersion 特定色散量的计量单位。

燃油效率

NSUnitFuelEfficiency 燃油效率的计量单位。

数据存储

NSUnitInformationStorage 信息量的计量单位。

6.数据格式化

(将数字、日期、测量值和其他值与区域设置感知字符串表示形式相互转换。)

概述

Foundation 支持两种数据格式化方法:

在 Swift 中工作时,formatted直接在要格式化的类型上使用方法,可以选择使用及其子类型来自定义格式化程序输出。这种方法支持日期、整数、浮点数、度量、序列和人名组件。Foundation 在内部缓存相同配置的格式化程序实例,让您可以专注于应用程序的格式化需求。FormatStyle

在 Objective-C 中,创建实例NSFormatter及其子类型,并使用stringForObjectValue将对象转换为格式化字符串。

数字和货币

NSNumberFormatter 一种在数值和它们的文本表示之间进行转换的格式化程序。

名称

NSPersonNameComponentsFormatter 提供人名组成部分的本地化表示的格式化程序。

NSPersonNameComponents 管理人名的各个部分以允许区域设置感知格式的对象。

日期和时间

NSDateFormatter 在日期及其文本表示之间转换的格式化程序。

NSDateComponentsFormatter 创建时间量的字符串表示形式的格式化程序。

NSRelativeDateTimeFormatter 创建相对日期或时间的区域感知字符串表示的格式化程序。

NSDateIntervalFormatter 创建时间间隔的字符串表示形式的格式化程序。

NSISO8601DateFormatter 在日期和它们的 ISO 8601 字符串表示之间转换的格式化程序。

数据大小

NSByteCountFormatter 将字节计数值转换为使用适当字节修饰符(KB、MB、GB 等)格式化的本地化描述的格式化程序。

测量

NSMeasurementFormatter 提供单位和度量的本地化表示的格式化程序。

列表

NSListFormatter 使用适当的分隔符和连词提供项目列表的区域设置正确格式的对象。

国际化

NSLocale 有关用于格式化数据以进行演示的语言、文化和技术惯例的信息。

自定义格式化程序

NSFormatter 为创建、解释和验证值的文本表示的对象声明接口的抽象类。

自动语法协议

NSInflectionRule 影响属性字符串如何执行自动语法一致性的规则。

NSInflectionRuleExplicit 一种变形规则,它使用形态实例来确定如何变形属性字符串。

NSMorphology 对字符串语法属性的描述。

7.过滤器和排序

(使用谓词、表达式和排序描述符来检查集合和其他服务中的元素。)

过滤

NSPredicate 用于限制对提取或内存过滤的搜索的逻辑条件的定义。

NSExpression 用于比较谓词的表达式。

NSComparisonPredicate 用于比较表达式的专用谓词。

NSCompoundPredicate 评估其他谓词的逻辑组合的专用谓词。

排序

NSSortDescriptor 关于如何根据所有对象共有的属性对对象集合进行排序的不可变描述。

NSComparisonResult 指示排序顺序的常量。