这是我参与「第四届青训营-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
指示排序顺序的常量。