2017-09-07 1 views
2

나는이 오류 메시지가 얻을 스위프트 4. 내 스위프트 3 코드를 변환하려고 해요 : 유형의표현 패턴 '문자열'유형의 값을 일치시킬 수없는 'AVMetadataKey'

표현 패턴 '문자열'할 수 없습니다 유형의 일치 값 '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 
    } 
} 

답변

3

commonKey을 ⌘ 클릭하고 당신은 인수 유형 AVMetadataKey보다는 String의 것을 볼 수 있습니다하시기 바랍니다.

설명서를 읽는 것이 좋습니다. 그만한 가치가 있으며 몇 초 안에 스스로 문제를 해결할 수 있습니다.

commonKeynil 인 경우 메서드를 즉시 종료하기 위해 guard 문을 추가했습니다.

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

감사합니다. @vadian. –

관련 문제