对于个人资料页面,我允许用户选择他们想要的图像。否则,页面将显示一个通用的标题快照。在页面的编辑版本中,它类似地显示他们使用图像拾取器控制器拾取的图像,或者如果他们从未选择过图像拾取器控制器,则显示通用头像。
当我保存核心数据时,如果他们选择了图像,我将图像保存为文件,并将其名称保存在核心数据中。这是有效的。
但是,如果他们没有选择图像,并且显示了通用的头像,那么我不想保存任何内容--无论是图像还是核心数据中的图片名称的值。
现在,我正在从视图中抓取图像名称和内容,并发现我无意中保存了通用图像视图和核心数据中的通用图像名称,这会导致问题。
如果是一个选择的图像,但如果只是一个通用的图像,我如何才能获取图像和名称,这样我就不会保存任何内容?
这是我目前使用的缩写代码:
//grab image currently being displayed
UIImage *image = self.imageView.image;
//assign name for pic
NSString *picname = @"newpic.png";
//***I would like to do following only if the user has chosen a pic, not if it is a generic pic showing.
//save name of pic in contact entity
[self.contact setValue:picname forKey:@"pic"];
//use separate saveImageasPicName method to save the image
[self saveImage:image asPicName:picname];
//****
//save managed object context which puts name of pic in core data
if ([self.managedObjectContext save:&error]) {
//saved
} 发布于 2015-06-27 20:38:03
您可以声明属性
@property (nonatomic, assign) BOOL imageWasPicked;在viewDidload上将其设置为NO
self.imageWasPicked = NO;选择图像后,将flag设置为YES
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// image processing code
self.imageWasPicked = YES;
}最后,检查这个标志-是否保存数据
if (self.wasImagePicked)
{
//grab image currently being displayed
UIImage *image = self.imageView.image;
//assign name for pic
NSString *picname = @"newpic.png";
//***I would like to do following only if the user has chosen a pic, not if it is a generic pic showing.
//save name of pic in contact entity
[self.contact setValue:picname forKey:@"pic"];
//use separate saveImageasPicName method to save the image
[self saveImage:image asPicName:picname];
//****
//save managed object context which puts name of pic in core data
if ([self.managedObjectContext save:&error]) {
//saved
}
}希望这能有所帮助
https://stackoverflow.com/questions/31088734
复制相似问题