我試圖動態繪製沿路徑曲線試圖表示山。SKShapeNode和CGPathRef EXC_BAD_ACCESS
我有一個函數返回一個CGPathRef
,它是一個C指向結構的指針。
-(CGPathRef)newPath
{
CGMutablePathRef mutablePath = CGPathCreateMutable();
//inserting quad curves, etc
return mutablePath;
}
我然後通過在UIBezierPath
包裹周圍通過這些CGPathRefs
。
-(NSArray*)otherFunction
{
CGPathRef ref = [self newPath];
UIBezierPath *path = [UIBezierPath bezierPathWithCGPath: ref];
NSArray* paths = @[path];
CGPathRelease(ref);
return paths;
}
我然後採取的路徑返回的數組,並使用他們SKShapeNode
顯示到屏幕上。
SKShapeNode *node = [SKShapeNode new];
NSArray* paths = [self otherFunction];
CGPathRef ref = [[paths firstObject] CGPath];
node.path = ref;
node.fillColor = [UIColor orangeColor];
node.lineWidth = 2;
最後。
[self addChild:node];
CGPathRelease(node.path);
當我重複這個動作序列幾次後,我的程序就會中斷並顯示出來。
UIApplicationMain與EXC_BAD_ACCESS代碼= 2
我知道有內存泄漏。
我的問題是如何處理釋放CGPathRef
當我最終通過幾個函數並將它包裝在另一個類中?
我更新了代碼,現在收到EXC_I386_GPFLT錯誤。
我建議你發佈編譯的實際代碼,而不是「從其他函數解開的路徑」。 – 0x141E