gpt4 book ai didi

ios - 使用 Swift 读/写数组 plist

转载 作者:可可西里 更新时间:2023-11-01 00:53:20 24 4
gpt4 key购买 nike

我正在尝试读取包含整数数组的 plist。这是我第一次使用它们,我可以很好地阅读它们,但是当我写入时 plist 不会更新。

这是我的读写代码..

class FavouritesManager {
var myArray:NSMutableArray = [0]
func loadDataPlist(){
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray
let documentsDirectory = paths.objectAtIndex(0)as NSString
let path = documentsDirectory.stringByAppendingPathComponent("FavouriteIndex.plist")
let fileManager = NSFileManager.defaultManager()
if(!fileManager.fileExistsAtPath(path))
{
let bundle = NSBundle.mainBundle().pathForResource("FavouriteIndex", ofType: "plist")
fileManager.copyItemAtPath(bundle!, toPath: path, error:nil)
}
myArray = NSMutableArray(contentsOfFile: path)!
println(myArray)
}
func writeToPlist(indexValue:Int) {

if let path = NSBundle.mainBundle().pathForResource("FavouriteIndex", ofType: "plist"){
myArray.addObject(indexValue)
myArray.addObject(indexValue+5)
myArray.addObject(indexValue+10)
myArray.addObject(indexValue+15)
myArray.writeToFile(path, atomically: true)
}
}

此代码的目的是存储已收藏的 tableViewCell 的索引,以便我可以在我喜欢的 tableViewControllwe 中显示该行

顺便说一句 - 我的 plist 看起来像这样...... enter image description here谢谢!

最佳答案

您的问题是您在 loadDataPlist() 中将 plist 加载到您的文档目录中,但是您仍然从它在 writeToPlist(indexValue:)功能。因此,您正尝试在只读位置写入 plist。将您的写入功能更改为:

func writeToPlist(indexValue:Int) {
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path = paths.stringByAppendingPathComponent("MyPlist.plist")

if var plistArray = NSMutableArray(contentsOfFile: path) {
plistArray.addObject(indexValue)
plistArray.addObject(indexValue+5)
plistArray.addObject(indexValue+10)
plistArray.addObject(indexValue+15)
plistArray.writeToFile(path, atomically: false)
}
}

请注意,我没有将值添加到 myArray,而是只写入了 plist。您必须决定是否要维护这两个数组(局部变量 myArray 和 plist 中的数组),具体取决于您使用它的目的。无论哪种方式,这应该可以解决您的问题。

关于ios - 使用 Swift 读/写数组 plist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28917792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com