我目前正在实施我的第一个应用程序的最后一个阶段,但有很多问题。我正在尝试保存用户输入的数据,但我发现它非常令人困惑。
我最初使用的NSUserDefaults非常容易理解,但我很快发现NSMutableArrays无法存储,所以我不得不寻找替代方案。我可以看到将我的五个数组存储在一个plist文件中是最好的选择吗?
我已经对此做了大量研究,但几乎没有任何Swift示例,所以我一直在努力寻找一个好的例子来学习。
目前我已经设置了一个plist文件'Transactions.plist',其中的所有内容都是预设的'Root'。
这是我的数组代码,用户点击添加按钮时会调用该代码:
arrayDataPayments.addObject(transactionName)
arrayDataCost.addObject(finalUserBudget)
arrayDataDate.addObject(transactionDateInputted)
arrayDataValue.addObject(currencyDouble)
let path = NSBundle.mainBundle().pathForResource("Transactions", ofType: "plist")
arrayDataPayments.writeToFile(path!, atomically: true)
arrayDataCost.writeToFile(path!, atomically: true)
arrayDataDate.writeToFile(path!, atomically: true)
arrayDataValue.writeToFile(path!, atomically: true)
arrayDataImage.writeToFile(path!, atomically: true)
我是否需要在plist文件中设置任何内容,或者它可以保留原样并且我的代码是否正确?当我需要在表格视图中显示每个数组时,如何从plist文件中恢复每个数组?
答案 0 :(得分:0)
首先,您不能写入应用程序包,而是要写入Documents目录。
如果文件路径良好,则每个arrayDataPayments.writeToFile
都会过度使用前一个文件路径。您需要创建一个包含所有数组的plist。或者创建一个包含所有数组的Dictionary并编写该文件。每个数组项都需要符合NSCoding
协议。