是在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中单身人士最好的方法。 不是我完全宽容这一点。