에서 문자열로 키 값을 가져올 수 없습니다 :이 같은 MPMediaItem에서 메타 데이터
let url = item.value(forProperty:MPMediaItemPropertyAssetURL) as? NSURL
let asset = AVURLAsset(url: url! as URL, options: nil)
let metaArray = asset.metadata
for metadata in metaArray{
print("-----metadata:\(metadata)")
print("-----metadata.key:\(String(describing: metadata.key))")
}
을하지만, 나는 "키를"인쇄 된 메타 데이터의 블록이 숫자로 인쇄 얻을 때 대신으로 인쇄물에 나타낸 "pcst"의 값이 메타 데이터/키 모두 일어나는
-----metadata:<AVMetadataItem: 0x1740153f0, identifier=itsk/pcst, keySpace=itsk, key class = __NSCFNumber, key=pcst, commonKey=(null), extendedLanguageTag=(null), dataType=com.apple.metadata.datatype.int8, time={INVALID}, duration={INVALID}, startDate=(null), extras={ dataLength = 1; dataType = 21; dataTypeNamespace = "com.apple.itunes"; }, value=1> -----metadata.key:Optional(1885565812)
(특정 미디어 아이템에 29이있다).
또한 참고 코드 행 :
let realString = NSString(string: metadata.key! as! String)
원인이 오류 : Could not cast value of type '__NSCFNumber' (0x1b80dcdf0) to 'NSString' (0x1b80edae8).
가 어떻게 키 ("pcst")에 대한 문자열 값을받을 수 있나요?
그것이 작동처럼 보이는 ... – wayneh
을 테스트하는 막 - 난 그냥에 문자열을 구문 분석해야 "/"앞에있는 문자를 지우고 "/"및 뒤에 오는 4 개의 문자를 제거하십시오 .... – wayneh
@wayneh'/'로'components (separatedBy :)'를 사용하고 결과의 마지막 객체에 접근 할 수 있습니다. –