我第一次使用泄漏仪器。 我在我的代码中遇到两个泄漏,当我看到源代码然后它显示在这两个粗体语句....
- (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];
}
不知道接下来要做什么来解决问题。
答案 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已经被添加到窗口中(因此保留了)。