销毁和重建Singleton iOS

时间:2012-10-26 14:39:41

标签: objective-c ios singleton nsstream

我目前正在开发iOS应用程序,需要使用套接字连接与硬件设备进行通信。 因此我使用带有NSStream的Singleton对象。到目前为止,所有工作都按预期进行。

问题是如果连接终止或中断,则无法重新打开它(这在文档中说明)。 所以我的想法是摧毁Singleton并重新创建它。这不应该干扰Singleton模式,因为它声明只存在这样一个类的一个副本。

有谁知道如何解决这个问题? 任何其他不涉及单身人士娱乐的解决方案都将受到高度赞赏。

3 个答案:

答案 0 :(得分:2)

单例不会被破坏,可能你应该包含一个方法来重新打开单例类并关闭/重置旧连接。

答案 1 :(得分:2)

为什么不在您的单例类中放置一些逻辑来测试与设备的连接是否处于活动状态。如果已经死亡,请关闭连接,然后打开一个新连接。这实际上是通过破坏重建单例来尝试做的事情,但不会滥用单例模式。它也应该更简单,因为只有单例知道连接,因此保持低耦合。

答案 2 :(得分:1)

Singleton的核心,它允许您创建一次变量,这意味着它将沿着您的应用程序生存,直到它被终止。我们将其初始化为延迟加载,意味着何时使用它,然后将其初始化。它将在RAM中作为静态分配,因此我们可以随时调用它来重用,这确实节省了时间。 所以不要破坏Singleton,只需在其中做一些逻辑。

希望这有帮助。