andrewz andrewz - 1 year ago 407
Swift Question

Static member cannot be used on instance of type

I am attempting to create an access method to a singleton. I am getting this error (see code below). I don't understand why I am getting this error and what this error means. Can anyone explain?

class AppDelegate: UIResponder, UIApplicationDelegate {
static private var thedelegate: AppDelegate?

class var delegate : AppDelegate {
return thedelegate!

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
thedelegate = self // syntax error: Static member 'thedelegate' cannot be used on instance of type 'AppDelegate'

Answer Source

You are trying to access Class level variable from the instance of that class. To use that you need to make Class level function: static func (). Try this:

static func sharedDelegate() -> AppDelegate {return UIApplication.sharedApplication().delegate as! AppDelegate}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download