'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 语句,如果 commonKeynil,则立即退出该方法。

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
        }
    }
}