Yagiz
Yagiz

Reputation: 1

Swift 2: Writing to plist with multidimensional objects

I am a newbie in Swift and I have been trying something for a long time and I am having an compile error that could not overcome with.

I am trying to write to a plist containing multidimensional array objects.

I need to add an array to the inner array of plist.

The plist is like as follows:

plist

I am trying to populate the most inner array of the plist which is as follows:

enter image description here

I am trying to add ITEM 2 under the ITEM 5.

I am using this code:

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

Compiler gives me following error :

Cannot call value of non-function type '((AnyObject) -> Void)!'

How can I populate the array inside the parent array directly from the code?

Upvotes: 0

Views: 111

Answers (1)

vadian
vadian

Reputation: 285059

Due to value semantics of Swift arrays you have to reassign all changes to their parent objects

This is the initial array

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

get the root array at index 0 of the array

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

get the array at index 5 of rootArray

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

append the item

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

reassign item5Array to index 5 of rootArray

rootArray[5] = item5Array

reassign rootArray to index 0 of the array

array[0] = rootArray

Upvotes: 1

Related Questions