我有“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”(字符串值),我想以编程方式使用点击的方式写出字符串值是“是”还是“否”。按钮。