在ipad中分析泄漏仪器的问题

时间:2011-07-05 05:38:49

标签: ipad memory-leaks xcode-instruments

我第一次使用泄漏仪器。 我在我的代码中遇到两个泄漏,当我看到源代码然后它显示在这两个粗体语句....

- (id) initWithFrame: (CGRect) frame
{
    [self LoadMoviePlayer];

    **self= [super initWithFrame:frame];**  
    if (self==[super initWithFrame:frame])
    {
        CAEAGLLayer* eaglLayer = (CAEAGLLayer*) self.layer;
        eaglLayer.opaque = YES;

- (void) applicationDidFinishLaunching: (UIApplication*) application
{
    CGRect screenBounds = [[UIScreen mainScreen] bounds];

    m_window = [[UIWindow alloc] initWithFrame: screenBounds];
    **m_view = [[GLView alloc] initWithFrame: screenBounds];**

    [m_window addSubview: m_view];
    [m_window makeKeyAndVisible];
}

不知道接下来要做什么来解决问题。

1 个答案:

答案 0 :(得分:0)

从我所能看到的,当你在init中执行代码而没有被初始化(你的[super initWithFrame:]发生在[self loadMoviePlayer]之后)时,第一次泄漏发生了,第二次看到,似乎是m_view被分配但未被释放,您可以使用以下方法解决它:

CGRect screenBounds = [[UIScreen mainScreen] bounds];

m_window = [[UIWindow alloc] initWithFrame: screenBounds];
m_view = [[GLView alloc] initWithFrame: screenBounds];

[m_window addSubview: m_view];
[m_view release];
[m_window makeKeyAndVisible];

这应该有效,因为m_view已经被添加到窗口中(因此保留了)。