Я преобразовал проект в дугу, и теперь он создает ошибку плохого доступа при создании новой библиотеки ресурсов. До ARC проблем не было.Активация ALAssetsLibrary внутри блока вызывает плохой доступ
Любые предложения?
[self.stillImageOutput captureStillImageAsynchronouslyFromConnection:stillImageConnection
completionHandler:^(CMSampleBufferRef imageDataSampleBuffer, NSError *error)
{
if (error) {
NSLog(@"Take picture failed");
}
else
{
NSData *jpegData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageDataSampleBuffer];
CFDictionaryRef attachments = CMCopyDictionaryOfAttachments(kCFAllocatorDefault,
imageDataSampleBuffer,
kCMAttachmentMode_ShouldPropagate);
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageDataToSavedPhotosAlbum:jpegData
metadata:(__bridge_transfer id)attachments
completionBlock:^(NSURL *assetURL, NSError *error) {
if (error) {
NSLog(@"Save to camera roll failed");
}
}];
if (attachments)
CFRelease(attachments);
}
}];
Иногда жизнь может быть так трудно. Перед ARC мне не пришлось сохранять CFDictionaryRef. Так что добавление 'CFRetain (вложения);' после инициализации вложений удалил плохой доступ. Cheers, – tubtub
Пожалуйста, разместите свое решение вместо ответа: http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – Stefan