Swift UserDefaults.standard返回类型
Swift UserDefaults.standard返回类型

Swift UserDefaults.standard返回类型

本文可以作为《UserDefault存储Set类型数据》的返回类型扩展篇,因为上一篇文章涉及返回类型和as?转换的问题,这里进一步补充相关的返回类型。

UserDefaults.standard 提供了一系列方法用于访问存储的数据,这些方法返回的类型大致可以分为以下几类:

1、返回明确类型(预期数值类型)的方法

这些方法返回的类型是明确的,直接匹配特定类型的值,无需额外类型转换:

这些方法设计为返回明确的值,并在键不存在或类型不匹配时返回默认值或 nil。

2、返回 Any? 的方法

这些方法返回泛型类型,需要开发者自己确定和转换具体类型:

3、返回其他类型的方法

除了返回明确类型和 Any? 之外,UserDefaults 还支持一些特殊场景的方法:

保存与读取枚举值

可以通过 UserDefaults 存储枚举值,但需要将枚举值转为基础类型(如 Int 或 String):

enum ExampleEnum: Int {
    case caseOne = 1
    case caseTwo = 2
}

UserDefaults.standard.set(ExampleEnum.caseOne.rawValue, forKey: "exampleEnum")
let storedValue = UserDefaults.standard.integer(forKey: "exampleEnum")
let exampleEnum = ExampleEnum(rawValue: storedValue) // 转换回枚举

访问特殊类型的数据

UserDefaults 本身不直接支持自定义类型(如 Set、Date、Struct),但可以通过编码方式存储(如使用 JSON 或 Data)。

总结

明确返回预期值的方法

1、bool(forKey:) -> Bool

2、integer(forKey:) -> Int

3、float(forKey:) -> Float

4、double(forKey:) -> Double

5、string(forKey:) -> String?

6、data(forKey:) -> Data?

7、url(forKey:) -> URL?

返回 Any? 的方法

1、object(forKey:) -> Any?

2、array(forKey:) -> [Any]?

3、dictionary(forKey:) -> [String: Any]?

其他

没有非预期数值或非 Any? 的返回类型情况,但返回值可能是默认值,取决于存储的数据类型和调用的方法。

相关文章

UserDefaults存储Set类型数据:https://fangjunyu.com/2024/12/24/userdefaults%e5%ad%98%e5%82%a8set%e7%b1%bb%e5%9e%8b%e6%95%b0%e6%8d%ae/

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

发表回复

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