Утечки памяти при использовании ALAssetsLibrary - PullRequest
3 голосов
/ 16 декабря 2010

Я разрабатываю приложение для iPhone с использованием SDK 4.1 для iOS 4.1 или новее.
Инструменты сообщают об утечках памяти для приведенного ниже кода.

void (^resultBlock)(ALAsset *) = ^(ALAsset *asset) {
    NSLog(@"resultBlock");
};
void (^failureBlock)(NSError *) = ^(NSError *error) {
    NSLog(@"error");
};
NSURL *url = [NSURL URLWithString:@"assets-library://asset/asset.JPG?id=1000000176&ext=JPG"];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:url resultBlock:resultBlock failureBlock:failureBlock];
[library release];

Я просто поместил этот код в viewDidLoad моего TestAppдля теста. (Я использую с UIImagePicker в моем реальном проекте.)
Когда я запускаю TestApp с помощью Instrument (утечка), он сообщает об утечке памяти через 10 секунд после запуска.

Кто-нибудь может сказать мне, что не так с этим кодом или есть что-то еще, что я должен сделать?
Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2011

В указанном вами коде нет ничего плохого в управлении вашей памятью. Если есть утечка, это в рамках Apple или другой части вашего кода. Просто убедитесь, что вы тестируете на устройстве - некоторые фреймворки имеют гораздо больше «блеска» на устройстве.

...