是在AppDelegate中的variables在Swift中的静态variables的解决方法?

由于Swift没有静态variables,我试图访问一个连接,应该是静态的…将这个variables放在应用程序代表一个合理的解决scheme?

我在GitHub上发现了这个片段:

func xmppStream () -> XMPPStream { return appDelegate().xmppStream! } 

所以当在代码中调用xmppStream()时,是否返回原始实例,或者实际上在这里做了什么?

这不完全准确。 Swift类没有静态variables,但结构和枚举呢!

 struct Static { static var stream: XMPPStream? } 

如果你愿意的话,你可以稍后在你的代码中初始化它。

 Static.stream = XMPPStream() 

如果你需要一个类的静态variables的另一种方法是在里面嵌套一个结构:

 class RegularClass { struct Static { static var stream: XMPPStream? } //Other code } 

而在其他地方你可以像访问它…

 RegularClass.Static.stream ... 

这可能是目前Swift中单身人士最好的方法。 不是我完全宽容这一点。