我有一个“按钮”,可以将图像从相机胶卷加载到imageView,这非常完美。
现在,我将图像保存在数据库的imageView中。

我有4个“文本字段”,这没有问题。当我添加代码以保存“图片”时,应用崩溃。

.h文件中,我有:

@property (weak, nonatomic) IBOutlet UIImageView *pictureData;


UIImage

我的.m文件:

- (IBAction)save:(id)sender {
    NSManagedObjectContext *context = [self managedObjectContext];

    if (self.device) {
        // Update existing device
        [self.device setValue:self.nameTextField.text forKey:@"name"];
        [self.device setValue:self.versionTextField.text forKey:@"version"];
        [self.device setValue:self.companyTextField.text forKey:@"company"];
         [self.device setValue:self.adresse.text forKey:@"adresse"];
        [self.device setValue:self.pictureData forKey:@"picture"];



    } else {
        // Create a new device
        NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Device" inManagedObjectContext:context];
        [newDevice setValue:self.nameTextField.text forKey:@"name"];
        [newDevice setValue:self.versionTextField.text forKey:@"version"];
        [newDevice setValue:self.companyTextField.text forKey:@"company"];
        [newDevice setValue:self.adresse.text forKey:@"adresse"];
        [newDevice setValue:self.pictureData forKey:@"picture"];


    }

    NSError *error = nil;
    // Save the object to persistent store
    if (![context save:&error]) {
        NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
    }

    [self dismissViewControllerAnimated:YES completion:nil];
}


xcdatamodeld(核心数据)中,我有图片作为类型二进制数据集!
错误在哪里?

最佳答案

这是问题所在

[self.device setValue:self.pictureData forKey:@"picture"];


UIImageView是一个不是二进制数据的对象,请替换以下语句

[self.device setValue:UIImagePNGRepresentation(self.pictureData.image) forKey:@"picture"];


编辑:

要检索,

[self.pictureData setImage:[UIImage imageWithData:[self.device valueForKey:@"picture"]]];

关于ios - 将图像从UIimageView保存到核心数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23376064/

10-14 21:53
查看更多