我很难让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];
}];
}