1

What am I doing wrong in this code?

and why do I get the error ?

"Value of type 'NSMutableArray' has no member 'append'"

    static func saveUserData()
    {
        let item:NSDictionary = ["TIME":"12:00","LOCATION":"here"]
        let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        let documentsDirectory = paths[0]
        let filePath = documentsDirectory + "/datafile.dat"
        var readArray:NSMutableArray? = NSMutableArray(contentsOfFile: filePath)

        if var array = readArray {

            print("loaded array - appending..." )

           // PROBLEM IS HERE 
             var damnArray:NSMutableArray = array
             damnArray.append(item)
         } else {
           //
         }
    }
Nirav D
  • 71,513
  • 12
  • 161
  • 183
chewy
  • 8,207
  • 6
  • 42
  • 70

3 Answers3

12

Because you are using NSMutableArray, you need to use addObject

damnArray.addObject(item)

append is used with swift array like this way

var arr = [Int]()
arr.append(5)

For more detail about swift array check this apple documentation or this tutorial.

Nirav D
  • 71,513
  • 12
  • 161
  • 183
  • Can you please tell me the difference between declaring an array like `var arr : [[String : Any]]?` and `var arr = [[String : Any]]()`. I am so much confused in these. Please help me with it. – iPeter Mar 29 '18 at 14:53
1

Your had declared dammArray as NSMutableArray. So there is no method append is available. Append is available in swift array object.

 var damnArray:NSMutableArray
 damnArray.addObject(item)

or

 var damnArray = [NSDictionary]()
 damnArray.append(item) 
Rocker
  • 1,269
  • 7
  • 15
0

As per your answer and syntax this worked for me thanks, in my code which is:

@IBAction func btnSend(_ sender: UIButton)

{

    //data.append(tfData.text!)

    data.add(tfData.text!)
    tblViewList.reloadData()

    tfData.resignFirstResponder()
}
Joey Phillips
  • 1,543
  • 2
  • 14
  • 22