如何在swift的App的mainBundle中将数组保存到.plist

时间:2014-11-12 14:36:09

标签: ios arrays swift plist

如何使用数组类型将数组保存到.plist?

我试试这个,但是没有用

    let path = NSBundle.mainBundle().pathForResource("Setting", ofType: "plist")
    let arrayWithProperties = NSArray(array: [
        NSNumber(integer: nowThemeSelected),
        NSNumber(integer: imageForBackgroundNumber),
        NSNumber(integer: imageForButtonNumber),
        NSNumber(integer: colorOfButton)])


    arrayWithProperties.writeToFile(path!, atomically: true)

2 个答案:

答案 0 :(得分:5)

您无法在iOS中写入主要捆绑包,应用程序包中的所有内容都是只读的。

  

[App的捆绑]目录包含应用程序和所有   它的资源。您无法写入此目录。阻止   篡改,bundle目录在安装时签名。   写入此目录会更改签名并阻止您的应用程序   从发射。但是,您可以获得对任何设备的只读访问权限   存储在应用包中的资源。

考虑阅读file system programming guide,然后将你的plist保持在正确的位置。最好是Documents目录或Library目录。由你决定。

答案 1 :(得分:1)

您无法写入Bundle目录,但可以写入Documents目录。所以,请使用此代码!

let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString
var path:NSString = documentsPath.stringByAppendingPathComponent("Setting.plist");

当你写toToFile()时,请使用:

arrayWithProperties.writeToFile(path as String, atomically: true)

祝你好运!