Ich bin neu in iOS. Ich habe versucht, eine Anwendung zu erstellen, in der ein von der Kamera aufgenommenes Bild gespeichert wird CoreData. Ich weiß jetzt, wie man Daten wie NSStrings NSDateund andere Typen speichert, habe aber Schwierigkeiten, ein Bild zu speichern. Ich habe so viele Artikel gelesen, dass Sie es auf die Festplatte schreiben und in eine Datei schreiben müssen, aber ich kann es anscheinend nicht verstehen.
Der folgende Code ist der, mit dem ich andere Daten in Kerndaten gespeichert habe.
- (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];
}
Core Data verschiebt die Daten in eine externe Datei, wenn sie einen bestimmten Schwellenwert erreichen. Diese Datei wird auch vollständig von Core Data verwaltet, sodass Sie sich darüber keine Sorgen machen müssen.
UIImageObjekt gespeichert . Wenn ja, können Sie es folgendermaßen in einNSDataObjekt konvertieren :NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(myUIImage)];Ich glaube, das Speichern vonNSDataObjektenCoreDataist nicht wirklich schwierig.