我是swift的新手,我想扩展NSCoding以符合URL类型。我需要定义一个输入和输出类型,并且总是得到错误Type 'URL' does not conform to protocol 'NSCoding'。
//what it looks like before entering types
DiskCacheLevel<<#K: StringConvertible#>, NSCoding>()
//what I want it to look like (<InputType, OutputType>)
DiskCacheLevel<URL, URL>() //here the error occurs我该如何扩展它以符合URL类型呢?
发布于 2017-06-15 21:01:55
您有两个问题:
NSCoding以符合URL类型”,因为您不能扩展协议以符合任何内容,而URL不是可以符合的协议。假设您的意思是要扩展URL以符合NSCoding.URL以符合NSCoding,因为只有类才能符合NSCoding,但URL是一个结构。你能做的就是用NSURL代替URL。NSURL是一个类,您可以在NSURL和URL之间自由转换。由于NSURL已经符合NSCoding,因此您不必为此编写扩展。
let cache = DiskCacheLevel<URL, NSURL>()
let key = URL(...)
let value = URL(...)
cache[key] = value as NSURLhttps://stackoverflow.com/questions/44568091
复制相似问题