我正在制作一个图库应用。目前我通过将其转换为NSData来保存CoreData中的捕获图像。但我不知道如何获取CoreData中的捕获图像以及如何在UICollectionView中显示它。请帮助我。我在这里分享我的代码。帮我更新一下。
提前致谢。
#import "ViewController.h"
#import "AppDelegate.h"
@interface ViewController (){
AppDelegate *appdelegate;
NSManagedObjectContext *context;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Device has no camera"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[myAlertView show];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)camera:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}
- (IBAction)album:(UIButton *)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
NSData *imageData = UIImagePNGRepresentation(chosenImage);
appdelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
context = appdelegate.persistentContainer.viewContext;
//save coredata
NSManagedObject *entity = [NSEntityDescription insertNewObjectForEntityForName:@"Images" inManagedObjectContext:context];
[entity setValue:imageData forKey:@"firstimage"];
[appdelegate saveContext];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Can't Save");
}else{
NSLog(@"hifi");
}
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity1 = [NSEntityDescription entityForName:@"Images" inManagedObjectContext:context];
[fetchRequest setEntity:entity1];
[picker dismissViewControllerAnimated:YES completion:NULL];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:NULL];
}
@end