Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Swift中写入plist文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一个样本plist文件,favCities.plist.这是我的示例代码: override func viewDidLoad() { super.viewDidLoad() let path = NSBundle.mainBundle().pathForresource("favCities", ofType: "plist") var plistArray =
我有一个样本plist文件,favCities.plist.这是我的示例代码

override func viewDidLoad() {
    super.viewDidLoad()


    let path = NSBundle.mainBundle().pathForresource("favCities",ofType: "plist")
    var plistArray = NSArray(contentsOfFile: path) as [Dictionary<String,String>]

    var addDic: Dictionary = ["ZMV": "TEST","Name": "TEST","Country": "TEST"]
    plistArray += addDic
    (plistArray as NSArray).writeToFile(path,atomically: truE)

    var plistArray2 = NSArray(contentsOfFile: path)

    for tempDict1 in plistArray2 {
        var tempDict2: NSDictionary = tempDict1 as NSDictionary
        var cityName: String = tempDict2.valueForKey("Name") as String
        var cityZMV: String = tempDict2.valueForKey("ZMV") as String
        var cityCountry: String = tempDict2.valueForKey("Country") as String
        println("City: \(cityName),ZMV: \(cityZMV),Country: \(cityCountry)")
    }

乍一看,一切都运作良好.输出如下所示:

City: Moscow,ZMV: 00000.1.27612,Country: RU
City: New York,ZMV: 10001.5.99999,Country: US
City: TEST,ZMV: TEST,Country: TEST

但是当我打断应用程序时,我发现我的文件favCities.plist没有改变.还有两个值.这些值 – 城市:TEST,ZMV:TEST,国家:TEST – 未添加.如果我重新启动应用程序,那么我再次看到3行输出,尽管应该有4行.

怎么了?

更新:

我把代码更改为:

override func viewDidLoad() {
    super.viewDidLoad()

    let fileManager = (NSFileManager.defaultManager())
    let directorys : [String]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.AllDomainsmask,truE) as? [String]

    if (directorys! != nil){
        let directories:[String] = directorys!;
        let Dictionary = directories[0];

        let plistfile = "favCities.plist"
        let plistpath = Dictionary.StringByAppendingPathComponent(plistfilE);

        println("\(plistpath)")

        var plistArray = NSArray(contentsOfFile: plistpath) as [Dictionary<String,String>]

        var addDic: Dictionary = ["ZMV": "TEST","Country": "TEST"]
        plistArray += addDic

        (plistArray as NSArray).writeToFile(plistpath,atomically: falsE)

        var plistArray2 = NSArray(contentsOfFile: plistpath)

        for tempDict1 in plistArray2 {
            var tempDict2: NSDictionary = tempDict1 as NSDictionary
            var cityName: String = tempDict2.valueForKey("Name") as String
            var cityZMV: String = tempDict2.valueForKey("ZMV") as String
            var cityCountry: String = tempDict2.valueForKey("Country") as String
            println("City: \(cityName),Country: \(cityCountry)")
        }
    }
    else {
        println("ERROR!")
    }

}

现在,当您运行应用程序时,输出中的行数会增加

City: Moscow,Country: TEST
City: TEST,Country: TEST
........

但!如果查看文件favCities.plist,它位于项目文件夹(Xcode中的Project Navigator)中,它仍然保持不变 – 有两行!

如果沿着路径走,它存储在变量plistpath中 – / Users / admin / Library / Developer / CoreSimulator / Devices / 55FD9B7F-78F6-47E2-9874-AF30A21CD4A6 / data / Containers / Data / Application / DEE6C3C8-6A44-4255 -9A87-2CEF6082A63A /文档/

然后还有一个文件favCities.plist.它包含构成应用程序的所有更改.我究竟做错了什么?如何查看位于项目文件夹(Project Navigator)中的文件中的所有更改?

解决方法

是的,这解决了问题 – @L_874_19@

但项目文件夹中的plist文件仅用于属性情况…..

大佬总结

以上是大佬教程为你收集整理的在Swift中写入plist文件全部内容,希望文章能够帮你解决在Swift中写入plist文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。