У меня есть проблемы с управлением памятью здесь? - PullRequest
1 голос
/ 11 марта 2010

Что-то здесь не так с этим кодом:

+ (UIImage*)captureView:(UIView *)theView {
    UIGraphicsBeginImageContext(theView.frame.size);
    [theView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

Когда я использую это, Xcode выдает мне это сообщение об ошибке:

malloc: * ошибка для объекта 0x103f000: освобожденный указатель не был выделено * установить точку останова в malloc_error_break для отладки

Я не вижу там ошибок управления памятью. Кто-нибудь еще?

Ответы [ 2 ]

1 голос
/ 11 марта 2010

У меня было такое же предупреждение. Но это не происходит в 3.1 или выше.

0 голосов
/ 11 марта 2010

Не вижу. Установите NSZombie включенным в сборке, чтобы отследить его.

Это может быть связано с возвратом автоматически освобожденного UIImage из метода класса, который, вероятно, будет находиться во временном пуле автоматического выпуска. Изображение может быть уничтожено при сливе этого пула. Чтобы проверить, переместите метод в метод экземпляра и посмотрите, исчезнет ли проблема.

...