Frederick C. Lee
Frederick C. Lee

Reputation: 9503

Unable to add object to a NSMutableArray

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?

Upvotes: 1

Views: 7812

Answers (2)

algal
algal

Reputation: 28094

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()

Upvotes: 2

Steve Rosenberg
Steve Rosenberg

Reputation: 19524

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!)

Upvotes: 0

Related Questions