Personally, I think the right solution would be to make it so that static variables (and functions) are accessible without the class name prefix. It's been discussed a long time ago though I would like it if the issue was revisited, since that discussion feels very unfinished IMO.
Edit:
For the time being, if you want a global static variable but also want to treat it like an instance variable, make it a computed property:
var a: Int { return 1 }
// Instead of
let a = 1
If you needed the global-ness, make a global variable and an instance property that accesses it:
class MyClass {
static let a: Type = { code you want to only run once }()
var a: Type { return MyClass.a }
}
It has the minus of making it possible to do myObject.a which you probably didn't want but that may be a tradeoff you're willing to take (and sounds like a tradeoff you already decided to take).