大佬教程收集整理的这篇文章主要介绍了objective-c – 使用UIImagePickerController保存的图像进行内存管理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; jpgData = UIImageJPEGRepresentation(image,1); NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *documentsPath = [paths objectATindex:0]; filePath = [documentsPath StringByAppendingPathComponent:@"image.jpeg"]; [jpgData writeToFile:filePath atomically:YES]; [self dismissModalViewControllerAnimated:YES]; [disableNextButton setEnabled:YES]; jpgData = [NSData dataWithContentsOfFile:filePath]; UIImage *image2 = [UIImage imageWithData:jpgData]; [imageView setImage:image2]; }@H_874_2@现在我知道我可以在保存之前尝试缩放图像,我计划在接下来查看,但我不明白为什么这不起作用.也许我错误地认为ARC在离开堆栈顶部时会自动释放视图及其子视图. @H_874_2@任何人都可以解释为什么我要存储我的设备内存? (希望简单的事情,我完全忽略了)我是不是设法把ARC抛到窗外? @H_874_2@编辑:我如何在其他视图中调用图像
- (void)loadBACkground { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,YES); NSString *documentsPath = [paths objectATindex:0]; NSString *filePath = [documentsPath StringByAppendingPathComponent:@"image.jpeg"]; UIImage *image = [UIImage imageWithContentsOfFile:filePath]; [BACkgroundImageView setImage:image]; }@H_874_2@如何建立视图控制器之间的导航: @H_874_2@编辑2: @H_874_2@我的基本声明是什么样的:
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface PhotoPickerViewController : UIViewController <UIImagePickerControllerDelegate,UINavigationControllerDelegate> { IBOutlet UIImageView *imageView; NSData *jpgData; NSString *filePath; UIImagePickerController *imagePicker; IBOutlet UIBarButtonItem *disableNextButton; } @end@H_874_2@如果相关,我如何调用我的图像选择器:
- (void)callCameraPicker { if ([UIImagePickerController issourceTypeAvailable:UIImagePickerControllersourceTypeCamera] == YES) { NSLog(@"Camera is available and ready"); imagePicker.sourCEType = UIImagePickerControllersourceTypeCamera; imagePicker.delegate = self; imagePicker.allowsEdiTing = NO; imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo]; for (AVCaptureDevice *device in devices) { if([[UIScreen mainScreen] respondsToSELEctor:@SELEctor(scalE)] && [[UIScreen mainScreen] scale] == 2.0) { imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; } } imagePicker.modalTransitionStyle = UIModalTransitionStyleCoverVertical; [self presentModalViewController:imagePicker animated:YES]; } else { NSLog(@"Camera is not available"); UIAlertView *cameraAlert = [[UIAlertView alloc] initWithtitle:@"Error" message:@"Your device doesn't seem to have a camera!" delegate:self cancelButtontitle:@"Dismiss" otherButtontitles:nil]; [cameraAlert show]; } }@H_874_2@编辑3:我记录了viewDidUnload,它实际上没有被调用,所以我现在在viewWillAppear中调用loadBACkground并在viewDidDisappear中使我的BACkgroundImageView为nil.我希望这会有所帮助,但没有任何区别.
- (void)viewWillAppear:(BOOL)animated { [self loadBACkground]; } - (void)viewDidDisappear:(BOOL)animated { NSLog(@"ViewDidDisappear"); BACkgroundImageView = nil; }
以上是大佬教程为你收集整理的objective-c – 使用UIImagePickerController保存的图像进行内存管理全部内容,希望文章能够帮你解决objective-c – 使用UIImagePickerController保存的图像进行内存管理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。