У меня есть фрагмент кода из класса, созданного Эрикой Садун, который, по словам Инструментов, протекает:
- (void)cacheBeginPointForTouches:(NSSet *)touches
{
if ([touches count] > 0) {
for (UITouch *touch in touches) {
CGPoint *point = (CGPoint *)CFDictionaryGetValue(touchBeginPoints, touch);
if (point == NULL) {
point = (CGPoint *)malloc(sizeof(CGPoint));
CFDictionarySetValue(touchBeginPoints, touch, point);
}
*point = [touch locationInView:self.superview];
}
}
}
Приборы указывают на
point = (CGPoint *)malloc(sizeof(CGPoint));
как линия утечки.
Поскольку этот материал маллока мне не знаком. Я знаю, что он выделяет память, но поскольку я никогда не работал с C, C ++ и другими разновидностями C, мы с malloc не знакомы.
Другой вопрос, который я не понимаю, - почему она поставила звездочку перед «точкой» на
*point = [touch locationInView:self.superview];
Итак, вы видите что-то не так с кодом и почему инструменты говорят, что он там течет? Объяснение про звездочку это бонус! :)
спасибо.