1

I'm attempting to load a mutable array and got stuck.

Essentially what I want to do is to be able to add any class object to a global array. In this example I merely have name & address.

Here's a playground snippet:

import Foundation
var gDownloaders:NSMutableArray?

class downloader {
    var name:String?
    var address:String?
    init(name:String, address:String) {
        self.name = name
        self.address = address
    }
}

let one = downloader(name: "Ric Lee", address: "901 Edgewood")
let two = downloader(name: "Richard Brauer", address:"1010 Red Oak")
let three = downloader(name: "Meredith Lind", address: "410 Sunset Blvd")

gDownloaders?.addObject(one)
gDownloaders?.addObject(two)
gDownloaders?.addObject(three)

println(gDownloaders)

BTW: Xcode insist that I have the '?'/gDownloaders.

All I'm getting is nil for gDownloaders; even though each of the three objects are bona fide with data.

What am I doing wrong?

...should I use the Array vs NSMutableArray class instead?

Frederick C. Lee
  • 9,019
  • 17
  • 64
  • 105

2 Answers2

2

You never initialize gDownloaders. You declare what type the variable gDownloaders should have, but you don't put anything in that variable.

Try:

var gDownloaders:NSMutableArray? = NSMutableArray()
Hiren
  • 12,720
  • 7
  • 52
  • 72
algal
  • 27,584
  • 13
  • 78
  • 80
0

In swift, in a playground try this:

import Foundation

class downloader {
    var name:String?
    var address:String?
    init(name:String, address:String) {
        self.name = name
        self.address = address
    }
}

var gDownloaders = [downloader]()

let one = downloader(name: "Ric Lee", address: "901 Edgewood")
let two = downloader(name: "Richard Brauer", address:"1010 Red Oak")
let three = downloader(name: "Meredith Lind", address: "410 Sunset Blvd")

gDownloaders.append(one)
gDownloaders.append(two)
gDownloaders.append(three)

println(gDownloaders[0].name!)
Steve Rosenberg
  • 19,348
  • 7
  • 46
  • 53