Code: Select all
- (bool)beginProjectileEnemyCollision:(cpArbiter*)arbiter space:(ChipmunkSpace*)space
{
CHIPMUNK_ARBITER_GET_SHAPES(arbiter, proj, en);
Projectile *projectile = proj.data;
Enemy *enemy = en.data;
__unsafe_unretained typeof(*self) *weakSelf = self;
[self.space addPostStepBlock:^{
for(CCNode *node in projectile.sprites){
[weakSelf removeChild:node cleanup:TRUE];
}
[weakSelf.space remove:projectile];
[weakSelf.projectiles removeObject:projectile];
...
for(CCNode *node in enemy.sprites){
[weakSelf removeChild:node cleanup:TRUE];
}
[weakSelf.space remove:enemy]; //THIS LINE CAUSES THE CRASH
[weakSelf.enemies removeObject:enemy];
} key:projectile];
return YES;
}
Here's the full crash dump:
0com.apple.main-thread Crashed
Code: Select all
0 ... libsystem_kernel.dylib __pthread_kill + 8
2 libsystem_c.dylib abort + 94
3 MyApp _mh_execute_header + 1195807
4 MyApp
cpSpace.c line 398
cpSpaceRemoveBody
5 MyApp
ChipmunkSpace.m line 527
-[ChipmunkSpace removeBody:]
6 MyApp
ChipmunkBody.m line 149
-[ChipmunkBody removeFromSpace:]
7 MyApp
ChipmunkSpace.m line 271
-[ChipmunkSpace remove:]
8 MyApp
ChipmunkSpace.m line 273
-[ChipmunkSpace remove:]
9 MyApp
AST_GameLayer.m line 484
__53-[AST_GameLayer beginProjectileEnemyCollision:space:]_block_invoke
10 MyApp
ChipmunkSpace.m line 343
postStepPerformBlock
11 MyApp
cpSpaceStep.c line 95
cpSpaceUnlock
12 MyApp
cpHastySpace.c line 452
cpHastySpaceStep
13 MyApp
ChipmunkHastySpace.m line 26
-[ChipmunkHastySpace step:]
14 MyApp
AST_GameLayer.m line 532
-[AST_GameLayer tick:]
15 MyApp
AST_GameLayer.m line 509
-[AST_GameLayer update:]
16 MyApp -[CCScheduler update:] + 1008783
17 MyApp -[CCDirectorIOS drawScene] + 1090949
18 QuartzCore CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 166
19 QuartzCore CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 60
20 IOMobileFramebuffer IOMobileFramebufferVsyncNotifyFunc + 156
21 IOKit IODispatchCalloutFromCFMessage + 188
22 ... CoreFoundation __CFMachPortPerform + 362
29 UIKit UIApplicationMain + 1080
30 MyApp
main.m line 14
main