Objective c 销毁并重建单例iOS

Objective c 销毁并重建单例iOS,objective-c,ios,singleton,nsstream,Objective C,Ios,Singleton,Nsstream,我目前正在为iOS开发一个应用程序,它需要使用套接字连接与硬件设备通信。 因此,我将单例对象与NSStream一起使用。在这一点上,所有的工作都如预期的那样 问题在于,如果连接被终止或中断,则无法重新打开连接(文档中对此进行了说明)。 所以我的想法是摧毁单身汉并重建它。这不应该干扰Singleton模式,因为它声明这样一个类只存在一个副本 有人知道如何解决这个问题吗? 任何不涉及重新创建singleton的其他解决方案都将不胜感激。singleton不是为了销毁而创建的,可能您应该包括一个方法来

我目前正在为iOS开发一个应用程序,它需要使用套接字连接与硬件设备通信。 因此,我将单例对象与NSStream一起使用。在这一点上,所有的工作都如预期的那样

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

有人知道如何解决这个问题吗?
任何不涉及重新创建singleton的其他解决方案都将不胜感激。

singleton不是为了销毁而创建的,可能您应该包括一个方法来重新打开singleton类并关闭/重置旧连接。

singleton不是为了销毁而创建的,可能您应该包含一个方法来重新打开singleton类并关闭/重置旧连接。

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

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

singleton的核心是允许您创建一次变量,这意味着它将沿着您的应用程序运行,直到终止。我们将其初始化为延迟加载,意思是在使用它时,然后初始化它。它将在RAM中以静态方式分配,因此我们可以随时调用它进行重用,这确实节省了时间。 所以一定不要破坏单例,只要在它里面做一些逻辑


希望这有帮助

Singleton的核心是让你创建一个变量一次,也就是说,它将一直存在于你的应用程序中,直到它终止。我们将其初始化为延迟加载,意思是在使用它时,然后初始化它。它将在RAM中以静态方式分配,因此我们可以随时调用它进行重用,这确实节省了时间。 所以一定不要破坏单例,只要在它里面做一些逻辑


希望这有帮助

你为什么用单身汉?您需要销毁并重新创建singleton,这一事实强烈表明您不应该使用singleton。为什么不尝试在设备上使用
plist
文件,并在需要时进行更新?为什么使用singleton?您需要销毁并重新创建singleton,这一事实强烈表明您不应该使用singleton。为什么不尝试在设备上使用
plist
文件,并在需要时进行更新?