1. ホーム
  2. アイオス

[解決済み】SwiftでplistをDictionaryとして取得するにはどうすればいいですか?

2022-04-11 22:38:58

質問

アップルの新しい スウィフト プログラミング言語で、いくつかの問題があります...

現在、私はplistファイルを読もうとしています。Objective-Cでは、以下のようにして、コンテンツをNSDictionaryとして取得します。

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];

SwiftでplistをDictionaryとして取得するには?

plistのパスを取得することができると思うのですが。

let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")

これがうまくいった場合(正しい場合):コンテンツをDictionaryとして取得するにはどうしたらいいですか?

また、より一般的な質問です。

デフォルトの NS* クラスを使用できますか?私はそう思うのですが...それとも何か見逃しているのでしょうか?私が知る限りでは、デフォルトのフレームワークである NS* クラスはまだ有効で、使ってもいいのでしょうか?

解決方法は?

swift 3.0 Plistから読み取る。

func readPropertyList() {
        var propertyListFormat =  PropertyListSerialization.PropertyListFormat.xml //Format of the Property List.
        var plistData: [String: AnyObject] = [:] //Our data
        let plistPath: String? = Bundle.main.path(forResource: "data", ofType: "plist")! //the path of the data
        let plistXML = FileManager.default.contents(atPath: plistPath!)!
        do {//convert the data to a dictionary and handle errors.
            plistData = try PropertyListSerialization.propertyList(from: plistXML, options: .mutableContainersAndLeaves, format: &propertyListFormat) as! [String:AnyObject]

        } catch {
            print("Error reading plist: \(error), format: \(propertyListFormat)")
        }
    }

もっと読む swiftでプロパティリスト(.plist)を使用する方法 .