'String' 类型的表达式模式无法匹配 'AVMetadataKey' 类型的值
Expression pattern of type 'String' cannot match values of type 'AVMetadataKey'
我正在尝试将我的 Swift 3 代码转换为 Swift 4。我收到此错误消息:
'String' 类型的表达式模式无法匹配 'AVMetadataKey'
类型的值
private extension JukeboxItem.Meta {
mutating func process(metaItem item: AVMetadataItem) {
switch item.commonKey
{
case "title"? :
title = item.value as? String
case "albumName"? :
album = item.value as? String
case "artist"? :
artist = item.value as? String
case "artwork"? :
processArtwork(fromMetadataItem : item)
default :
break
}
}
请在 commonKey
上 ⌘-单击 ,您将看到参数的类型是 AVMetadataKey
而不是 String
。
我们鼓励您阅读文档。这是值得的,您可以在几秒钟内解决这样的问题。
我添加了一个 guard
语句,如果 commonKey
是 nil
,则立即退出该方法。
private extension JukeboxItem.Meta {
func process(metaItem item: AVMetadataItem) {
guard let commonKey = item.commonKey else { return }
switch commonKey
{
case .commonKeyTitle :
title = item.value as? String
case .commonKeyAlbumName :
album = item.value as? String
case .commonKeyArtist :
artist = item.value as? String
case .commonKeyArtwork :
processArtwork(fromMetadataItem : item)
default :
break
}
}
}
我正在尝试将我的 Swift 3 代码转换为 Swift 4。我收到此错误消息:
'String' 类型的表达式模式无法匹配 'AVMetadataKey'
类型的值private extension JukeboxItem.Meta {
mutating func process(metaItem item: AVMetadataItem) {
switch item.commonKey
{
case "title"? :
title = item.value as? String
case "albumName"? :
album = item.value as? String
case "artist"? :
artist = item.value as? String
case "artwork"? :
processArtwork(fromMetadataItem : item)
default :
break
}
}
请在 commonKey
上 ⌘-单击 ,您将看到参数的类型是 AVMetadataKey
而不是 String
。
我们鼓励您阅读文档。这是值得的,您可以在几秒钟内解决这样的问题。
我添加了一个 guard
语句,如果 commonKey
是 nil
,则立即退出该方法。
private extension JukeboxItem.Meta {
func process(metaItem item: AVMetadataItem) {
guard let commonKey = item.commonKey else { return }
switch commonKey
{
case .commonKeyTitle :
title = item.value as? String
case .commonKeyAlbumName :
album = item.value as? String
case .commonKeyArtist :
artist = item.value as? String
case .commonKeyArtwork :
processArtwork(fromMetadataItem : item)
default :
break
}
}
}