2017-11-15 4 views
0

plist를 구문 분석하려고합니다.swift의 objective-NSDictionary (contentsOfFile) 메소드에 대한 대안

이 코드는 아래와 같습니다 : 나는 사전에 내 사전의 종류를 설정하면

if let path = Bundle.main.path(forResource: Constants.plistName, ofType: Constants.plistType) { 

     guard let myDictionary = NSDictionary(contentsOfFile: path) else { 
      //throw some error 
     } } 

, 나는 더 이상 contentsOfFile 방법을 사용할 수 없습니다. 도와주세요.

답변

0

(권장) 대안은 PropertyListSerialization

let url = Bundle.main.url(forResource: Constants.plistName, withExtension: Constants.plistType)! 
let data = try! Data(contentsOf: url) 
let myDictionary = try! PropertyListSerialization.propertyList(from: data, format: nil) as! [String:Any] 
+0

은 왜 키 유형 문자열과 값 형식 어떠한의 사전에 캐스팅입니까? –

+1

전에 동일한 질문에 답변했습니다. https://stackoverflow.com/a/40437034/1187415. –

+0

속성 목록 사전의 모든 키는'String'이어야하고 모든 지원되는 값 유형의 공통 유형은'Any'입니다 - @MartinR 중복으로 표시해 주셔서 감사합니다. 당신의 기억은 내 것보다 훨씬 낫다.) – vadian