Objective c 无法从coredata获取数据

Objective c 无法从coredata获取数据,objective-c,core-data,ios5.1,Objective C,Core Data,Ios5.1,我从照片库中获取一幅图像,并将其保存到核心数据中,然后将其显示到图像视图中。这是正确的工作。但当我再次运行project时,图像不会显示在图像视图中 这是从照片库中获取图像的代码 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [picker dismissModalViewControllerA

我从照片库中获取一幅图像,并将其保存到核心数据中,然后将其显示到图像视图中。这是正确的工作。但当我再次运行project时,图像不会显示在图像视图中

这是从照片库中获取图像的代码

   -(void)imagePickerController:(UIImagePickerController *)picker   didFinishPickingMediaWithInfo:(NSDictionary *)info


{

 [picker dismissModalViewControllerAnimated:YES];



   UIImage *img= [info objectForKey:@"UIImagePickerControllerOriginalImage"];


NSManagedObjectContext *context=[self managedObjectContext];

NSManagedObject *newContact=[[NSManagedObject alloc] initWithEntity:[NSEntityDescription entityForName:@"Contacts" inManagedObjectContext:context] insertIntoManagedObjectContext:context];
//newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Images" inManagedObjectContext:context];

NSData *data=UIImageJPEGRepresentation(img,0.0);
[newContact setValue:data forKey:@"image"];
[self fetchData];
}

这是fetchData()方法的代码

这是我的viewDidLoad()


通过设置实体修改coredata上下文,但不保存修改。正是由于这个原因,当您再次运行项目时,它不会被保存

要解决此问题,您必须在修改后使用
save
方法保存
NSManagedObjectContext
上下文

因此,在
fetchData
方法的末尾,尝试:

[context save:nil];

(您可以在参数中传递NSError以在保存过程中获取错误。)

您可以通过设置实体来修改coredata上下文,但不保存修改。正是由于这个原因,当您再次运行项目时,它不会被保存

要解决此问题,您必须在修改后使用
save
方法保存
NSManagedObjectContext
上下文

因此,在
fetchData
方法的末尾,尝试:

[context save:nil];

(您可以在参数中传递NSError以在保存过程中获取错误。)

首先应将图像路径(而不是uiimage)保存到Core数据,然后从Core数据获取路径,并通过此路径将图像加载到imageView


并使用Magic Record()管理核心数据,您将不会遇到任何问题。

首先,您应该将图像路径(而不是uiimage)保存到核心数据,然后从核心数据获取路径,并通过此路径将图像加载到imageView

并使用Magic Record()管理核心数据,您将不会遇到任何问题。

要保存:

[newChannelToCoreData setValue:UIImagePNGRepresentation(_currentChannelImage) forKey:@"image"];
要获取:

_currentChannelImage = [UIImage imageWithData:[lastChannel valueForKey:@"image"]];
要保存:

[newChannelToCoreData setValue:UIImagePNGRepresentation(_currentChannelImage) forKey:@"image"];
要获取:

_currentChannelImage = [UIImage imageWithData:[lastChannel valueForKey:@"image"]];

在对coredata进行所有修改后执行此操作

NSError *error = nil;
if (![context save:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}

在对coredata进行所有修改后执行此操作

NSError *error = nil;
if (![context save:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}