我正在使用PINCache将缓存添加到我的应用程序中,我处于这样一种情况,即缓存系统会调用编码/解码的委托方法.
这些方法是通用的,但通用值不明确地符合Codable.因为它们是委托,所以我无法更改签名以使泛型类型符合Codable.
这些方法是通用的,但通用值不明确地符合Codable.因为它们是委托,所以我无法更改签名以使泛型类型符合Codable.
func modelForKey<T : SimpleModel>(_ cacheKey: String?,context: Any?,completion: @escaping (T?,NSError?) -> ()) { guard let cacheKey = cacheKey,let data = cache.object(forKey: cacheKey) as? Data,T.self is Codable else { completion(nil,nil) return } let decoder = JSONDecoder() do { let model: T = try decoder.decode(T.self,from: data) completion(model,nil) } catch { completion(nil,nil) } }
In argument type
T.Type
,T
does not conform to expected typeDecodable
如何强制我的解码器接受通用值?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。