2011-07-15 147 views
1

我创建了一个方法,像下面一个:内存泄漏问题

+ (JSONManager *)GetInstance 
{ 
    if (!instance) 
    { 
     instance = [[JSONManager alloc] init]; 
    } 
    return instance; 
} 

,我需要用同样的方法在不同的视图...如果我释放它工作正常,第一种观点这个如果试图导航到第二个视图我的应用程序崩溃。

任何一个可以请让我知道我在哪里需要释放对象提前

+0

尝试释放它在其他视图,其中u正在访问该 – booleanBoy

+0

http://meta.stackexchange.com/q/5234/150789 –

回答

0

这似乎是一个单身

感谢。你不应该在第一个视图中释放它。您将希望在应用程序的整个生命周期中使用相同的实例。

如果这不是要求,您应该提供机制将instance变量设置为nil,因为它将在释放对象后指向释放对象。但我认为情况并非如此。

0

该代码看起来像一个Singleton。 Singleton的目的是在整个应用程序中有一个资源实例。

因此,在第一个视图中完成后,您不应该释放实例,因为您想在另一个视图中使用它。

如果你担心释放这种情况下看看下面的链接,一个模板单类iOS应用程序:

http://www.galloway.me.uk/tutorials/singleton-classes/

+0

雅这是单身......所以有没有办法没有释放它,但我越来越内存泄漏...我需要做什么来避免泄漏 – vidya

+0

我已经添加了一个链接,供您在iOS应用程序中用作单身人士的模板。 –