我对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
类型?
答案 0 :(得分:0)
你有两个问题:
您无法“扩展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 NSURL
,因此您无需为此编写扩展名。
{{1}}