我需要实现一些可以在应用程序的几个不同位置使用的功能。它基本上是通过网络发送一些东西,但我不需要将它附加到任何特定的视图 - 我可以通过 UIAlertViews 将所有内容传达给用户。
我想做的是将功能封装在一个对象(?)中,该对象可以保持自己的状态一段时间,然后自行消失。我读过几个类似的主题,通常不建议拥有一个保留然后释放自身的对象,但另一方面,你有单例,除了它们永远不会被释放的事实之外,它们在本质上非常相似。您无需保留对它们的引用即可正确使用它们。然而,在我的情况下,我觉得创建一个单例然后让它保持活动状态需要几秒钟才能执行的事情有点浪费。
我想出的是一个类本地的静态字典,它保留对类实例的唯一引用,然后,当一个实例完成其任务时,它会在延迟后执行选择器“removeObjectForKey”,从而删除唯一存在的引用并有效地杀死对象。这样,我只在内存中保留一本字典,无论如何它大部分时间都是空的。
问题是:这种解决方案是否有任何我应该注意的意外副作用,并且对于所描述的情况还有其他好的模式吗?