扩展NSCoding以符合URL

时间:2017-06-15 12:54:49

标签: ios swift

我对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类型?

1 个答案:

答案 0 :(得分:0)

你有两个问题:

  • 您无法“扩展URL以符合类型URL”,因为您无法扩展协议以符合任何内容,URL不是可以符合的协议。大概你的意思是你希望扩展NSCoding以符合URL

  • 您无法扩展NSCoding以符合NSCoding,因为只有类符合URL,但NSURL是结构。

您可以使用URL代替NSURLNSURL是一个类,您可以在URLNSURL之间自由转换。由于NSCoding已符合let cache = DiskCacheLevel<URL, NSURL>() let key = URL(...) let value = URL(...) cache[key] = value as NSURL ,因此您无需为此编写扩展名。

{{1}}