防止UIImagePicker内存问题

时间:2015-08-10 03:23:30

标签: ios objective-c uiimagepickercontroller nsoperationqueue

我很难让UIImagePickerController工作。它总是因内存错误而崩溃。这些是我做过的事情。请建议我能做些不同的事情。

我正在使用NSOperationQueue在另一个线程中执行保存操作。

我没有传递可能很大的UIImage,所以我将图像写入相册并传递资产的NSURL。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
  [self dismissViewControllerAnimated:YES completion:^{
    UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
    NSMutableDictionary *mutable = [[info objectForKey:UIImagePickerControllerMediaMetadata] mutableCopy];
    NSBlockOperation *saveOp = [NSBlockOperation blockOperationWithBlock:^{
      [[MyViewController defaultAssetsLibrary] writeImageToSavedPhotosAlbum:[chosenImage CGImage] metadata:mutable completionBlock:^(NSURL *assetURL, NSError *error) {
        if ([self.delegate respondsToSelector:@selector(imageSelected:)]) {
            [self.delegate imageSelected:assetURL];
        }
      }];
    }];
    [saveOp setCompletionBlock:^{
    }];
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [queue addOperation:saveOp];
  }]; 
}    

0 个答案:

没有答案