在iPhone应用程序中的内存泄漏问题

时间:2011-07-15 08:32:13

标签: iphone xcode memory-leaks

我创建了一个类似下面的方法:

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

我需要在不同的视图中使用相同的方法...如果我为第一个视图发布这个方法它工作正常,如果尝试导航到第二个视图我的应用程序崩溃。

任何人都可以告诉我在哪里需要发布该对象

提前致谢

3 个答案:

答案 0 :(得分:0)

这似乎是一个单身人士。您不应该在第一个视图中释放它。您将希望在应用程序的整个生命周期中使用相同的实例。

如果这不是要求,则应提供将instance变量设置为nil的机制,因为一旦释放它将指向释放的对象。但我认为事实并非如此。

答案 1 :(得分:0)

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

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

如果您担心发布此实例,请查看iOS应用程序的模板单例类的以下链接:

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

答案 2 :(得分:0)

如果你想要一个真正的单身人士使用这个模板并生成它。 它基于Apple的Singleton代码 http://blog.mugunthkumar.com/coding/objective-c-singleton-template-for-xcode-4/