Sprite kit EXC_坏_访问精灵套件

Sprite kit EXC_坏_访问精灵套件,sprite-kit,ios8,exc-bad-access,Sprite Kit,Ios8,Exc Bad Access,我已经在这个网站上和谷歌上搜索了大约一个星期,现在正试图解决我应用程序中的一个bug。看起来内存管理是个问题,带有僵尸的断点/工具不会返回任何东西。我所能弄明白的是,问题源于这段代码。当应用程序在特定情况下运行时,它会在我的main.m上返回EXC_BAD_访问权限。我认为这就是问题所在,但提前感谢您仔细查看 -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { if (!gameOver && ga

我已经在这个网站上和谷歌上搜索了大约一个星期,现在正试图解决我应用程序中的一个bug。看起来内存管理是个问题,带有僵尸的断点/工具不会返回任何东西。我所能弄明白的是,问题源于这段代码。当应用程序在特定情况下运行时,它会在我的main.m上返回EXC_BAD_访问权限。我认为这就是问题所在,但提前感谢您仔细查看

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

if (!gameOver && gameStarted) {

[lines runAction:[SKAction removeFromParent]];
dotDrawn = NO;

UITouch* touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];

pos2x = positionInScene.x;
pos2y = positionInScene.y;

lines = [SKShapeNode node];

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, pos1x, pos1y);
CGPathAddLineToPoint(path, NULL, pos2x, pos2y);

lines.path = path;
lines.strokeColor = [UIColor grayColor];
[lines setLineWidth:3];

[self addChild:lines];
}

}

我遇到了同样的问题,症状也一样:代码在iOS7.1中工作,但在iOS8中使用EXC\u BAD\u访问时开始崩溃;试图用僵尸追踪错误访问的来源没有帮助

以下是我解决问题的方法:消除
[SKAction removeFromParent]
的所有用法

例如,这意味着将
[lines runAction:[SKAction removeFromParent]]
替换为
[lines removeFromParent]

有一个小技巧正在取代这样的东西:

[myNode runAction:[SKAction sequence:@[ [SKAction fadeOutWithDuration:1.0],
                                        [SKAction removeFromParent] ]]];
为此:

[myNode runAction:[SKAction fadeOutWithDuration:1.0] completion:^{
    [myNode removeFromParent];
}];

编辑:使用正确的搜索词,我找到了指向的链接。

添加一个异常断点,并将任何崩溃消息打印到日志中。请注意,如果泄漏了cgpath对象,则必须释放它。@LearnCos2D今天晚些时候有机会时,我将尝试断点异常,但我在哪里释放cgpath?谢谢你的帮助!在行之后。路径=路径;线路。您仍然“拥有”该路径,因此必须释放它。ARC不自动释放核心基础对象,如CGPATION.@ LealNoCOS2D2HY,我尝试了断点异常和添加CGPAthRealStore(PATH);但崩溃和异常仍在发生。如果你有任何其他想法,我很想听听,但如果没有,至少感谢你仔细阅读!异常断点应该向您显示源代码仍然可用的最接近错误的代码行。Xcode崩溃时突出显示哪一行?谢谢!这是一个救命稻草,我终于能够在很多很多小时内停止计时器来处理这个bug。再一次,谢谢!