iphone - Sprite Kit iOS 7.1 crash on wasRemovedFromTargetAtTime -
i have crash in sprite kit on ios 7.1. tried build xcode 5.0.2 , 5.1. results same. still crashing on ios 7.1 devices.
here attached screenshots.
i found code generated crash.
- (watdirection *)pandown { watdirection *direction = [[watdirection alloc] init]; cgfloat newy = 830; @weakify(self) [direction addstarthandler:^(watdirection *direction) { @strongify(self) self.panningdown = yes; [self runaction:[self animatenextarrowfadeout] withkey:@"next_arrow"]; // move scene skaction *pandown = [skaction movetoy:newy duration:1.5]; pandown.timingmode = skactiontimingeaseineaseout; [self.rootnode runaction:pandown withkey:@"pandown"]; // fade in pipes sknode *pipes = [self.rootnode childnodewithname:@"pipes"]; skaction *fadein = [skaction sequence:@[ [skaction waitforduration:0.3], [skaction fadealphato:1 duration:0.6] ]]; [pipes runaction:fadein withkey:@"fadein"]; [pipes enumeratechildnodeswithname:@"pipe" usingblock:^(sknode *node, bool *stop) { skaction *fadein = [skaction sequence:@[ [skaction waitforduration:1.1], [skaction fadealphato:1 duration:0.6], ]]; [node runaction:fadein withkey:@"fadein"]; }]; // fade out overlay sknode *pipesoverlay = [pipes childnodewithname:@"pipes_overlay"]; skaction *fadeout = [skaction sequence:@[ [skaction waitforduration:3.0], [skaction fadealphato:0 duration:0.5], [skaction removefromparent] ]]; [pipesoverlay runaction:fadeout withkey:@"fadeout"]; [self runaction:[skaction sequence:@[ [skaction waitforduration:3.5], [skaction runblock:^{ [direction finish]; }] ]]]; }]; [direction addfinishhandler:^(watdirection *direction) { @strongify(self) [self runaction:[self animatenextarrowfadein] withkey:@"next_arrow"]; self.panningdown = no; self.panneddown = yes; }]; [direction addcancelhandler:^(watdirection *direction) { @strongify(self) skaction *pandown = [skaction movetoy:newy duration:0]; [self.rootnode runaction:pandown withkey:@"pandown"]; sknode *pipesoverlay = [self childnodewithname:@"//pipes_overlay"]; [pipesoverlay removefromparent]; [self runaction:[self animatenextarrowfadein] withkey:@"next_arrow"]; self.panningdown = no; self.panneddown = yes; }]; return direction;
}
these 2 lines problem:
@strongify(self) [self runaction:[self animatenextarrowfadein] withkey:@"next_arrow"];
any ideas on this?
found problem. there 2 actions same animationkey @"next_arrow".
[self runaction:[self animatenextarrowfadein] withkey:@"next_arrow"];
second actions starts before first action finishes. second action tries remove animation key queue there no action key because first action removed queue.
the fix rename action key second animation.
[self runaction:[self animatenextarrowfadein] withkey:@"next_arrow_down"];
thanks support!
Comments
Post a Comment