2010-10-21 60 views
0

任何人可以帮我请...如何将多个视图控制器在全球范围内共享数据

我一个模型中有一个巨大的物体。我将它作为一个单独的类来使用,并将对象返回给其他调用。但对象非常大,因此应用程序正在进行删除。而不是返回如何在全局共享数据,何时分配对象以及何处释放对象。我不需要在视图控制器中的对象中的所有数据..我需要从该对象的视图控制器的具体数据...

谢谢。

+0

你在说什么类型的数据? – 2010-10-21 16:28:05

+1

确保单身实际上是一个单身人士,否则你将有多个相同模型的实例。但是,如果应用程序因模型的内存占用而终止,则只能通过减小模型的大小和/或加载内存中的必要位来避免该问题。如果它是一个巨大的图像,将其分成多个图块。如果您要实例化并堆叠很多视图控制器,请务必实施适当的内存管理(即释放viewDidUnload中保留的视图):它可能无法解决问题,但可以缓解问题。 – sigsegv 2010-10-21 16:33:28

+0

这就是我所掌握的。如果模型太大,你需要一个不同的方法,如平铺或数据库或... – 2010-10-21 16:35:39

回答

0

您可以将指针储存到您的应用程序委托,并使用

BlahAppDelegate* delegate = [[UIApplication sharedApplication] delegate]; 
id bigObject = delegate.bigObject; 

由于应用程序的委托将活得比视图控制器找回它,你不应该担心保留和释放它。

单例类应该类似地工作,只要单例实例方法(检索一个创建的实例)调用在实例返回之前保留在实例上。当视图解除分配时,确保你在实例上调用释放。

相关问题