由于swift结构拥有神逻辑,以及神数据结构,很多时候在套用数组,字典的时候会发现修改是异常困难的问题。比如说以下的应用场景,我们将一个二位数组,数组中的元素是2项字典,我们将其写入文件后,要修改就会很困难。首先要将要修改的大数组读取出来,并将其初始化为NSMutableArray类,并将其子项数组也初始化为NSMutableArray类。并使用增加对象将新的二项字典加入,在将这个子项数组替换原来的大数组中的项,并将这个新的NSmutableArray的数组赋值给原始大数组,并将大数组写入文件。
代码如下,仅供参考:
let myArray = [
[
[“time”:”1″, “url”:”欢迎来宿舍”],
[“time”:”2″, “url”:”我是一栋”],
[“time”:”2″, “url”:”我是二栋”]
],
[
[“time”:”1″, “url”:”欢迎来体育场”],
[“time”:”2″, “url”:”我是篮球架”],
[“time”:”2″, “url”:”我是足球框”]
],
[
[“time”:”1″, “url”:”欢迎来食堂”],
[“time”:”2″, “url”:”我是西瓜炒月饼”],
[“time”:”2″, “url”:”我是辣椒炒茄子”]
],
[
[“time”:”1″, “url”:”欢迎来教室”],
[“time”:”2″, “url”:”我是仙1″],
[“time”:”2″, “url”:”我是逸夫楼”]
],
[
[“time”:”1″, “url”:”欢迎来计算机系楼”],
[“time”:”2″, “url”:”我是学长”],
[“time”:”2″, “url”:”我是学姐”]
],
[
[“time”:”1″, “url”:”欢迎来图书馆”],
[“time”:”2″, “url”:”我是小说”],
[“time”:”2″, “url”:”我是杂志”]
]
] //声明一个字典
NSArray(array: myArray).writeToFile(filepath as String, atomically: true)
Danmu = NSArray(contentsOfFile: filepath as String)
修改函数:
func modifiymap(index : Int,text : String) -> Bool {
let tempArray = NSMutableArray.init(array:Danmu!)
let tempDictionaryArray=NSMutableArray.init(array:tempArray[index] as! NSArray)
let addedEntry=[“time”:”1″, “url”:text];
tempDictionaryArray.addObject(addedEntry);
tempArray.replaceObjectAtIndex(index, withObject: tempDictionaryArray)
Danmu = tempArray;
let filepath:String = NSHomeDirectory() + “/Documents/webs.plist”
NSArray(array: Danmu!).writeToFile(filepath, atomically: true)
return true;
}