Swift 2:使用多维对象写入 plist

Posted

技术标签:

【中文标题】Swift 2:使用多维对象写入 plist【英文标题】:Swift 2: Writing to plist with multidimensional objects 【发布时间】:2016-01-01 20:52:37 【问题描述】:

我是 Swift 的新手,我已经尝试了很长时间,但我遇到了无法克服的编译错误。

我正在尝试写入包含多维数组对象的 plist。

我需要在 plist 的内部数组中添加一个数组。

plist如下:

我正在尝试填充 plist 的最内部数组,如下所示:

我正在尝试在ITEM 5 下添加ITEM 2

我正在使用此代码:

notesArray.objectAtIndex(0).objectAtIndex(5).addObject("AA","BB","CC","DD")

编译器给我以下错误:

不能调用非函数类型的值'((AnyObject) -> Void)!'

如何直接从代码中填充父数组中的数组?

【问题讨论】:

【参考方案1】:

由于 Swift 数组的值语义,您必须将所有更改重新分配给它们的父对象

这是初始数组

var array : [AnyObject] = [["OZEN PIZZA", "PIZZA", "15", "20", "tariffoto1", [["Biber","2", "Adet", "11"]]]]

获取数组索引0处的根数组

var rootArray = array[0] as! [AnyObject]

获取rootArray索引5处的数组

var item5Array = rootArray[5] as! [[String]]

追加项目

item5Array.append(["AA","BB","CC","DD"])

item5Array 重新分配给rootArray 的索引5

rootArray[5] = item5Array

rootArray重新分配给数组的索引0

array[0] = rootArray

【讨论】:

您好,我会尝试并尽快回复您。非常感谢楼主

以上是关于Swift 2:使用多维对象写入 plist的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SWIFT 在 plist 中访问数组及其对象?

如何将此 .plist 文件直接解析为 Swift 中的对象?

SWIFT 写入 plist 未更新

Swift 3:无法将数据写入 plist 文件

在 Swift 中写入 Plist

增量写入 plist 文件