gpt4 book ai didi

Swift 抽象返回类型的方法

转载 作者:行者123 更新时间:2023-11-28 15:44:23 25 4
gpt4 key购买 nike

我想创建一个从 UserDefauts 返回数组值的函数,如下所示:

func GetBool(name: String) -> Bool {
let defaults = UserDefaults.standard
return defaults.bool(forKey: name)
}

func GetBoolArray(name: String) -> [Bool] {
let defaults = UserDefaults.standard
return defaults.array(forKey: name) as? [Bool] ?? [Bool]()
}

但我不想为 Bool 创建一个函数,为 Int 创建另一个函数,为 CGFloat 等创建另一个函数。

将所有函数(用于 Bool、Int 等)抽象为一个函数(一个用于单个值,另一个用于数组值)的最佳方法是什么?

最佳答案

这样的事情对你有用吗?

func GetValue(name: String) -> Any? {
let defaults = UserDefaults.standard
return defaults.value(forKey: name)
}

func GetValueArray(name: String) -> [Any] {
let defaults = UserDefaults.standard
return defaults.array(forKey: name) ?? [Any]()
}

请注意,第一个函数在使用时需要解包,因为您使用的键可能与值不匹配。此外,我相信 array for key 仅适用于 NSArrays,因此第一个函数可能适用于这两种情况。

关于Swift 抽象返回类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com