Foundation常见的类类型
Foundation常见的类类型

Foundation常见的类类型

在 Foundation 框架中,有很多类类型(class types),它们遵循了许多协议,包括 CVarArg,这样可以在很多地方作为参数传递,特别是在像 NSPredicate 这样的需要传递多个不同类型参数的方法中。

常见的类类型

以下是一些 Foundation 中常见的类类型,它们通常会符合 CVarArg 协议,可以作为 NSPredicate 或其他类似方法的参数:

1、NSString (字符串类型)

用途:表示不可变字符串。

示例:”Hello, World!”

符合 CVarArg:可以直接作为 CVarArg 传递。

let str: NSString = "Hello, World!"

2、NSNumber (数字类型)

用途:用于包装数值数据(整数、浮动数值等),可以是 Int, Double, Float, Bool 等类型的包装。

示例:NSNumber(value: 123)

符合 CVarArg:适用于传递整数、浮动数值等。

let number: NSNumber = NSNumber(value: 123)

3、NSDate (日期类型)

用途:表示绝对时间点,通常是一个固定的日期和时间。

示例:NSDate()

符合 CVarArg:可以直接传递给方法。

let date: NSDate = NSDate()

4、NSURL (URL类型)

用途:用于表示资源的URL,通常用于文件或网络地址。

示例:NSURL(string: “https://www.example.com”)

符合 CVarArg:可以传递 URL 对象。

let url: NSURL = NSURL(string: "https://www.example.com")!

5、NSUUID (唯一标识符类型)

用途:用于生成和表示唯一的标识符。

示例:NSUUID()

符合 CVarArg:可以用作唯一标识符。

let uuid: NSUUID = NSUUID()

6、NSData / NSMutableData (数据类型)

用途:表示原始二进制数据。

示例:NSData(contentsOfFile:)

符合 CVarArg:可以作为二进制数据传递。

let data: NSData = NSData(contentsOfFile: "path/to/file")!

7、NSArray / NSMutableArray (数组类型)

用途:表示有序的元素集合,可以包含任何类型的元素。

示例:NSArray(array: [1, 2, 3])

符合 CVarArg:可以作为参数传递,通常用于组合多个值。

let array: NSArray = NSArray(array: [1, 2, 3])

8、NSDictionary / NSMutableDictionary (字典类型)

用途:表示键值对的集合。

示例:NSDictionary(dictionary: [“key”: “value”])

符合 CVarArg:可以作为键值对的集合传递。

let dict: NSDictionary = NSDictionary(dictionary: ["key": "value"])

9、NSSet / NSMutableSet (集合类型)

用途:表示无序的唯一元素集合。

示例:NSSet(objects: “apple”, “orange”, “banana”)

符合 CVarArg:适用于无序集合的场景。

let set: NSSet = NSSet(objects: "apple", "orange", "banana")

10、NSRange (范围类型)

用途:表示一个范围,通常用于表示一个子字符串的范围或数组的区间。

示例:NSRange(location: 0, length: 5)

符合 CVarArg:可用于表示范围参数。

let range: NSRange = NSRange(location: 0, length: 5)

11、NSValue (封装各种C类型数据)

用途:封装结构体类型(例如 CGPoint, CGSize, CGRect 等)。

示例:NSValue(cgPoint: CGPoint(x: 10, y: 20))

符合 CVarArg:用于封装基础数据类型,使其可以作为对象传递。

let pointValue: NSValue = NSValue(cgPoint: CGPoint(x: 10, y: 20))

12、NSAttributedString (富文本字符串)

用途:表示具有样式的文本,如颜色、字体等。

示例:NSAttributedString(string: “Hello”, attributes: [.foregroundColor: UIColor.red])

符合 CVarArg:通常用于存储有格式的文本。

let attributedString = NSAttributedString(string: "Hello", attributes: [.foregroundColor: UIColor.red])

13、NSDecimalNumber (高精度的十进制数)

用途:用于表示精确的十进制数,避免浮点数精度问题。

示例:NSDecimalNumber(value: 123.45)

符合 CVarArg:适用于财务和精确数值运算。

let decimalNumber: NSDecimalNumber = NSDecimalNumber(value: 123.45)

总结

Foundation 框架中的很多类类型都符合 CVarArg 协议,意味着可以直接在 NSPredicate、NSLog、String(format:) 等方法中传递这些类型作为参数。常见的 CVarArg 类型包括:

NSString

NSNumber

NSDate (包括 NSUUID, NSDecimalNumber 等)

NSURL

NSData

NSArray, NSDictionary, NSSet

NSValue (封装 CGPoint, CGSize, CGRect 等)

NSRange

NSAttributedString

相关文章

Core Data筛选数据的NSPredicate:https://fangjunyu.com/2025/04/10/core-data%e7%ad%9b%e9%80%89%e6%95%b0%e6%8d%ae%e7%9a%84nspredicate/

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注