首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS/Objective-C/Core-data:如何检测拾取器控制器中是否拾取了新镜像

IOS/Objective-C/Core-data:如何检测拾取器控制器中是否拾取了新镜像
EN

Stack Overflow用户
提问于 2015-06-27 20:25:41
回答 1查看 121关注 0票数 0

对于个人资料页面,我允许用户选择他们想要的图像。否则,页面将显示一个通用的标题快照。在页面的编辑版本中,它类似地显示他们使用图像拾取器控制器拾取的图像,或者如果他们从未选择过图像拾取器控制器,则显示通用头像。

当我保存核心数据时,如果他们选择了图像,我将图像保存为文件,并将其名称保存在核心数据中。这是有效的。

但是,如果他们没有选择图像,并且显示了通用的头像,那么我不想保存任何内容--无论是图像还是核心数据中的图片名称的值。

现在,我正在从视图中抓取图像名称和内容,并发现我无意中保存了通用图像视图和核心数据中的通用图像名称,这会导致问题。

如果是一个选择的图像,但如果只是一个通用的图像,我如何才能获取图像和名称,这样我就不会保存任何内容?

这是我目前使用的缩写代码:

代码语言:javascript
复制
 //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
                   } 
EN

回答 1

Stack Overflow用户

发布于 2015-06-27 20:38:03

您可以声明属性

代码语言:javascript
复制
@property (nonatomic, assign) BOOL imageWasPicked;

在viewDidload上将其设置为NO

代码语言:javascript
复制
self.imageWasPicked = NO;

选择图像后,将flag设置为YES

代码语言:javascript
复制
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// image processing code
self.imageWasPicked = YES;
}

最后,检查这个标志-是否保存数据

代码语言:javascript
复制
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
                   } 
}

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31088734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档