【发布时间】:2013-08-09 06:58:03
【问题描述】:
我有一个名为“Capture”的类,它是 NSObject 的子类,它还向父视图添加视图。
我添加了一个由滑块组成的 Settings.bundle。当滑块值为“ON/1”时,我将主窗口中“捕获”中的视图显示为子视图。当滑块值为“OFF/0”时,我必须删除从“Capture”中添加的视图并释放“Capture”中存在的所有对象。
当滑块值为“OFF/0”时,我只是不想将“Capture”类创建的视图隐藏到主视图中。
我想在应用程序发送到后台而不是在应用程序终止时释放“捕获”,所以我不能使用通知 UIApplicationWillTerminateNotification 来释放单例。
如果我只是隐藏'Capture'显示的视图,'Capture'类将不必要地使用内存
那么现在我该如何释放一个单例。
'Capture' 类视图将位于每个视图控制器之上,即使事件发生时也是如此。 由AppDelegate中调用的类方法分配一次。
单例是这样创建的:
static ScreenCapture *sharedScreen = nil;
+(Capture *)sharedScreenCapture
{
if (!sharedScreen)
{
sharedScreen = [[Capture alloc] init];
}
return sharedScreen;
}
【问题讨论】:
-
显示如何创建单例的代码。
-
让一切都成为单身的诅咒 ;-)
-
静态截屏 *sharedScreen = nil; +(Capture *)sharedCapture { if (!sharedScreen) { sharedScreen = [[Capture alloc] init]; } 返回共享屏幕;该方法在 appdelegate 中调用。
-
真的有必要释放单例吗?我不这么认为。因为如果你在某个地方释放它,它就会失去它的价值,这不是
singleton的行为。 -
结束应用程序。如果您不希望该对象在应用程序的整个生命周期中持续存在,则不应将其设为单例。
标签: iphone ios singleton dealloc