Я хотел бы сохранить некоторые данные конфигурации в моем файле plist, который содержит массивы и обычные типы переменных. Это выглядит следующим образом:Как сохранить данные в многомерном массиве в файле plist
(http://s10.postimg.org/f2xpgur1l/plist.png) (жаль, что я не могу прикрепить любое изображение)
Моя функция, сделать это выглядит так:
// Saves the data into a plist file
func saveObject(i_fileName: String, i_keyForValueToSave: String, i_valueToSave: String, i_keyForXInitializer:String, i_valueXInitializer: String) {
var fileName: String = i_fileName
var keyForValueToSave: String = i_keyForValueToSave
var valueToSave: AnyObject = i_valueToSave
var keyForXInitializer: String = i_keyForXInitializer
var valueXInitializer: String = i_valueXInitializer
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) as NSArray
let documentsDirectory = paths.objectAtIndex(0) as! NSString
let path = documentsDirectory.stringByAppendingPathComponent(fileName)
var dict: NSMutableDictionary = [keyForXInitializer: valueXInitializer]
//saving values
dict.setObject(valueToSave, forKey: keyForValueToSave)
//writing to plist
dict.writeToFile(path, atomically: false)
let resultDictionary = NSMutableDictionary(contentsOfFile: path)
println("Saved Data.plist file is --> \(resultDictionary?.description)")
}
И я называю это так:
saveObject("Selection.plist", "Item 0", "testConfig, "Item 3", "XInitializerItem_01")
результат выглядит тогда так:
(http://s13.postimg.org/kbq103707/result.png) (жаль, что я не могу прикрепить любое изображение)
Как вы можете видеть, «testConfig», который должен быть сохранен в массив будет сохранен в виде обычной строки в файле pilst. Для меня это не цель. Каждый элемент, который я хотел бы добавить в этот массив. Im действительно новый в SWIFT и Im a, но застрял в космосе. Любая помощь будет замечательной! Спасибо!
Он отлично работает спасибо для этого! Я также могу хранить данные в plist. Но действительно ли так, что plist не хранится в xcode, его хранится где-то глубоко в моей системе. Разработчик/CoreSimator/Devices ... И так далее. Данные заполняются там, но когда я хочу его прочитать, он берет данные из xcode, который, конечно, не заполняется ... – Andy
Да просто введите значения, которые вы хотите ввести в переменных item0..item3, и это будет сохранено ,Этот файл не сохраняется в приложении, файлы plist, созданные в xcode, не могут быть изменены, а только читать, как только приложение установлено, файл сохраняется в папках вашего документа, чтобы ваше приложение могло его изменить, когда это необходимо. – Icaro
ОК спасибо за разъяснительную работу. Только последний вопрос. Когда я хотел бы сохранить второй или третий массив (например, selecio _02 или selection_03) в тот же файл, как бы вы это сделали? Каждая попытка, которую я делал до сих пор, заключается в перезаписывании существующего массива ... Thx много времени! – Andy