[ios] Как сохранить изображение в основных данных


Answers

В подклассе xcdatamodelI объявляет объект изображения как NSData ... вы не можете использовать формат UIImage , поскольку данные изображения находятся в двоичном формате.

@property (nonatomic, retain) NSData *imag;

В файле реализации .. конвертировать UIImage в NSData

UIImage *sampleimage = [UIImage imageNamed:@"sampleImage.jpg"];

NSData *dataImage = UIImageJPEGRepresentation(sampleimage, 0.0);

Затем, наконец, сохраните его

[obj setValue:dataImage forKey:@"imageEntity"]; // obj refers to NSManagedObject
Question

Я новичок в iOS. Я пытаюсь создать приложение, которое будет хранить изображение, снятое с камеры, в CoreData . Теперь я знаю, как хранить данные типа NSString s, NSDate и другого типа, но изо всех сил NSDate сохранить изображение. Я читал так много статей, говорящих, что вы должны записать их на диск и записать в файл, но я не могу понять.

Следующий код - тот, который я использовал для хранения других данных для основных данных.

- (IBAction)submitReportButton:(id)sender
{
    UrbanRangerAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];

    managedObjectContext = [appDelegate managedObjectContext];

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"PotholesDB" inManagedObjectContext:appDelegate.managedObjectContext];
    NSManagedObject *newPothole = [[NSManagedObject alloc]initWithEntity:entity insertIntoManagedObjectContext:managedObjectContext];


    [newPothole setValue:self.relevantBody.text forKey:@"relevantBody"];
    [newPothole setValue:self.subjectReport.text forKey:@"subjectReport"];
    [newPothole setValue:self.detailReport.text forKey:@"detailReport"];
//    [newPothole setValue:self.imageView forKey:@"photo"];

    NSDate *now = [NSDate date];
    //NSLog(@"now : %@", now);
    NSString *strDate = [[NSString alloc] initWithFormat:@"%@", now];
    NSArray *arr = [strDate componentsSeparatedByString:@" "];
    NSString *str;
    str = [arr objectAtIndex:0];
    NSLog(@"now : %@", str);

    [newPothole setValue:now forKey:@"photoDate"];
    [newPothole setValue:self.latitudeLabel.text forKey:@"latitude"];
    [newPothole setValue:self.longitudeLabel.text forKey:@"longitude"];
    [newPothole setValue:self.addressLabel.text forKey:@"streetName"];
    [newPothole setValue:streeNameLocation forKey:@"location"];


    NSError *error;
    [managedObjectContext save:&error];

    UIAlertView *ll = [[UIAlertView alloc] initWithTitle:@"Saving" message:@"Saved data" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    [ll show];
} 








Links