「instruments」で「Leaks」を利用した時に、なぜか大量に頭に「NSZombie」がついたLeaks Objectが見つかったので、ここ数日とても困っていました。 しかし、本日ようやくこの「NSZombie」を解消することができました。
解決方法
これは普通にcocos2dを利用している人にはまず出て来ません。 main.mでこの記述をしていると出てくるみたいです。 [c] extern void _CFEnableZombies(void);//<===こいつです
int main(int argc, char *argv[]) {
_CFEnableZombies(); // <===こいつです
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
/*
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
[pool release];
return retVal;
*/
int retVal = -1;
@try {
retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
}
@catch (NSException *exception) {
NSLog(@"%@", [exception callStackSymbols]);
@throw exception;
}
@finally {
[pool release];
}
return retVal;
} [/c]
おそらくこのサイトを見て記述をして、そのままにしておいたのが原因だったみたいです。
「main.m」から「extern void CFEnableZombies(void);」と「 CFEnableZombies(); 」を削除しましよう。
さいごに
私のメモリーの問題は、これ以外ににもたくさんあり、できるかぎりメモリを抑えようと色々調べています。 アプリが完成する前に、大きな山ですね。