本文介绍了类型';字符串';的表达式模式不能与类型';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
}
}
}
这篇关于类型';字符串';的表达式模式不能与类型';AVMetadataKey';的值匹配;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!