我在随机位置得到EXC_BAD_ACCESS。已经尝试使用NSZombieEnabled = YES,但是没有发生任何不同的情况。
我正在使用xcode4。已经尝试过:启用乱涂乱画,启用防护边缘,启用防护Malloc(仅在模拟器上工作,非常慢!),内存记录等等。
没运气。

任何人都可以建议我另一种方法来查找缺陷吗?我没有其他选择了。

提前致谢,


新的消息


内部:(void)applicationDidFinishLaunching:(UIApplication *)application

我创建一个计时器:ASMInterrupt = [NSTimercheduledTimerWithTimeInterval:1 / 60.0目标:自选择器:@selector(interrupiSSao :) userInfo:nil repeats:YES];

和一个新线程:[NSThread detachNewThreadSelector:@selector(myBackgroundMethod:)toTarget:self withObject:nil];

计时器将处于循环状态,直到运行myBackgroundMethod。

在myBackgroundMethod内部,我使用:

    //Beginning of the function
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
EAGLContext *context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES1 sharegroup: [[glView context] sharegroup]];
[EAGLContext setCurrentContext:context];


...
       //多个纹理/声音/音乐负载,如下所示:

NSBundle *bundle = [NSBundle mainBundle];
sndMove = [[SoundFx alloc] initWithSound:[bundle pathForResource:@"tetMov" ofType:@"wav"]];

    txParallax[0] = [[Texture2D alloc] initWithImageFile:@"parallax_tst" ofType : @"png" inMode:TEX_RGBA];


NSString * tmpSom = [[NSBundle mainBundle] pathForResource:@“ ThorTitle” ofType:@“ mp3”];
    musMenu = [[[AVAudioPlayer分配] initWithContentsOfURL:[NSURL fileURLWithPath:tmpSom]错误:NULL]保留];

...

  //and at the end:
[EAGLContext setCurrentContext:nil];
[context release];
[pool release];


这仅发生在应用程序的开头。并且错误总是在以下情况下发生:
1)长时间玩
2)游戏结束后和新游戏
3)在比赛结束时

因此,它可能与该线程没有直接关系。我试图查找自动发布问题,但是所有内容都通过initWith分配

最佳答案

尝试使用静态分析器(Xcode 4中为Cmd-Shift-B,Xcode 3中为Cmd-Shift-A)。如果您有一个过度释放的对象或双重释放对象,它将报告它。

关于iphone - EXC_BAD_ACCESS-NSZombie除了NSEnableAutoReleasePool = NO修复什么也没发现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6424508/

10-14 22:16