gpt4 book ai didi

swift - 如何使用 OSLog 记录通用类型的值?

转载 作者:行者123 更新时间:2023-11-28 14:11:07 27 4
gpt4 key购买 nike

我有以下包装 UserDefaults 的方法,以便我可以以类型安全的方式与 API 交互。

public func item<T>(forKey key: Key<T>) -> T? {
var item: T?
defer {
#if DEBUG
os_log(item != nil ? "Returned value for key '%@'" : "Returned 'nil' for key '%@'", log: Defaults.defaultsLog, type: .debug, key.value)
#endif
}
if let value = defaults.value(forKey: key.value) as? T, value is FoundationCodable || value is SwiftCodable {
item = value
return value
}
guard let data = defaults.data(forKey: key.value) else { return nil }
guard let decoded = try? decoder.decode(T.self, from: data) else { return nil }
item = decoded
return decoded
}

我想使用以下方式记录返回值:

func os_log(_ message: StaticString, dso: UnsafeRawPointer? = #dsohandle, log: OSLog = default, type: OSLogType = default, _ args: CVarArg...)

但是,我的泛型类型 T 不符合 CVarArg

是否可以记录返回值?如果是这样,那么我该如何构建我的逻辑来实现它?

最佳答案

String(description:decoded) 记录为 NSString

关于swift - 如何使用 OSLog 记录通用类型的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52528153/

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