2 Stimmen

Freigeben von CGMutablePathRef aus NSMutableArray

Ich speichere CGMutablePathRefs innerhalb eines NSMutableArray über NSValue.

Etwa so:

CGMutablePathRef path = CreateMutablePath();
[self.myArray addObject:[NSValue valueWithPointer:path]];

In meinem Dealloc habe ich dies versucht:

- (void)dealloc
{
    [super dealloc];

    for (int i = 0; i < self.myArray.count;) {

        NSValue *currentPath = [self.myArray objectAtIndex:i];

        CGMutablePathRef path = (CGMutablePathRef)[currentPath pointerValue];

        CGPathRelease(path);
    }

    self.myArray = nil;

}

Wenn ich dies jedoch ausführe, erhalte ich die folgende Ausnahme:

malloc: *** error for object 0x16b250: pointer being freed was not allocated

Kann mir jemand bitte erklären, warum dies ist und wie ich die CGMutablePathRefs korrekt freigeben sollte?

Für jede Hilfe sind wir dankbar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X