简体   繁体   English

如何从核心数据中的UIImageView保存UIImage

[英]How to save a UIImage from a UIImageView in Core Data

I have issue in UIImageView. 我在UIImageView中有问题。 In my project I have used two UIImageView s ( mainview for saving the background color and drawimage for drawing), one as subview of the other: 在项目中,我用了两个UIImageView S( mainview用于保存背景颜色和drawimage绘制),一个与其他的子视图:

[self.view addSubview:mainview];
[self.mainview addSubview:drawImage];

The problem is that whenever I am trying to save the objects in Core Data only one image is saved. 问题是,每当我尝试将对象保存到核心数据中时,仅保存一张图像。 This is my code: 这是我的代码:

 if(checkedcore==YES)
                {

                 NSData *imageData = UIImageJPEGRepresentation(mainview.image,1.0);
                NSManagedObject *imagetblObj= [NSEntityDescription insertNewObjectForEntityForName:@"Imagedata" inManagedObjectContext:context];



                //[imagetblObj setValue:<#(id)#> forKey:<#(NSString *)#>]



                //[imagetblObj setValue:self.imageData forKey:@"imageData"];
                [imagetblObj setValue:imageData forKey:@"imageData"];
                [imagetblObj setValue:self.textfield.text forKey:@"date"];
                [imagetblObj setValue:@"table" forKey:@"tabletext"];

                [context deleteObject:imagemanaged];


                [context insertObject:imagetblObj];

                NSError *err;
                if (![context save:&err]) 
                {
                    NSLog(@"Couldn't save history item into coredata");
                }
                else
                {

                    NSLog(@"data saved");
                }

                UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"" message:@"Image Updated" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
                [alertview show];

                NSLog(@"data saved");


                NSLog(@"save clicked");

                /// [self getcoredata];

               // TextPlacedViewController *viewcontroller=[[TextPlacedViewController alloc]initWithNibName:@"TextPlacedViewController" bundle:nil];
                ///viewcontroller.tabledata=self.array;
                ////viewcontroller.myimage=drawImage.image;
                ///[self.view   addSubview:viewcontroller.view];
                   // [self.navigationController popViewControllerAnimated:YES];
                }
                }


            else
            {
                mainview.image=drawImage.image;
       NSData *imageData = UIImageJPEGRepresentation(mainview.image, 1.0);


            if(![imageData isKindOfClass:[NSNull class]]||imageData==nil)
            {

        NSManagedObjectContext *context = [appDelegate managedObjectContext];
        NSManagedObject *imagetblObj= [NSEntityDescription insertNewObjectForEntityForName:@"Imagedata" inManagedObjectContext:context];

        [imagetblObj setValue:imageData forKey:@"imageData"];

        [imagetblObj setValue:self.textfield.text forKey:@"date"];
       [imagetblObj setValue:@"table" forKey:@"tabletext"];
        NSError *err;
        if (![context save:&err]) 
        {
            NSLog(@"Couldn't save history item into coredata");
        }
        UIAlertView *alertview=[[UIAlertView alloc]initWithTitle:@"" message:@"Data Saved" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertview show];

        NSLog(@"data saved");


        NSLog(@"save clicked");

        /// [self getcoredata];

        saveimageviewcontroller *viewcontroller=[[saveimageviewcontroller alloc]initWithNibName:@"saveimageviewcontroller" bundle:nil];
        ///viewcontroller.tabledata=self.array;
        ////viewcontroller.myimage=drawImage.image;
        ///[self.view   addSubview:viewcontroller.view];
        [self.navigationController pushViewController:viewcontroller animated:YES];

Clean up your code: 清理您的代码:

  • get the image from the image view 从图像视图获取图像
  • convert it to NSData 将其转换为NSData
  • save it in your Core Data entity 将其保存在您的核心数据实体中

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM