如何在Swift中将字符串值“写”到现有的plist文件中

时间:2016-02-21 10:11:31

标签: ios swift

我有“myPlist.plist”文件,其中包含以“isFavorite”键为字符串的项目。

我使用以下代码对SUCCESSFULLY过滤“isFavorite”键,其中字符串值为“YES”:

func SearchYES(){
    let pathMC = NSBundle.mainBundle().pathForResource("myPlist", ofType: "plist")
    let dictMC = NSDictionary(contentsOfFile: pathMC!)
    myPlist = dictMC!["Questions"]!.mutableCopy() as? Array

    if let questionArray = the! as? [[String:AnyObject]] {
        let isFavorite = questionArray.filter({
            if let favorite = $0["isFavorite"] as? String {
                return favorite.uppercaseString == "YES"
            }
            return false
        })
        print("Total number of exam items: \(isFavorite.count)")
    }
}}

因此,我知道如何正确读取或检索我的数据,但我不知道如何以编程方式写入我的pList。

例如,我尝试使用以下代码:

let isFavoriteKey = "isFavorite"
var isFavoriteValue: String! = "NO"

@IBAction func isFavoriteButton(sender: UIButton) {
isFavoriteValue = "YES"
saveFavoriteData()
}

func saveFavoriteData() {
let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
    let fullPathName = documentDirectory.stringByAppendingPathComponent("myPlist.plist")
    let fileManager = NSFileManager.defaultManager()
    if fileManager.fileExistsAtPath(fullPathName) {
        if let dictionaryForPlist = NSDictionary(contentsOfFile: fullPathName){
         dictionaryForPlist.setObject(isFavoriteValue!, forKey: isFavoriteKey)
            dictionaryForPlist.writeToFile(path, atomically: false)
}

我从http://rebeloper.com/read-write-plist-file-swift/http://www.learncoredata.com/plist/获得了代码(并稍微调整了一下)。

但他们没有工作。它不会“写”任何内容到我现有的“myPlist.plist”文件中。 有谁知道如何在现有的plist文件中实际“写”数据或设置字符串值? 例如,在我的“myPlist.plist”文件中,所有项都有关键字“isFavorite”(字符串值),我想以编程方式使用点击的方式写出字符串值是“是”还是“否”。按钮。

0 个答案:

没有答案