2017-11-15 17 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 
     } } 

I辞書にmyDictionaryの種類を設定した場合、私はもはや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

関連する問題