Ich möchte ein Bild speichern und abrufen, das aus meiner avcapturesession stammt. Ich konnte dies mit einem Knopfdruck machen, aber ich möchte, dass das Bild automatisch erscheint, nachdem es aufgenommen wurde. Es funktioniert gut mit einer IBAction-Presse. Hier ist, was ich getan habe. Ich speicherte das Bild mit diesem CodeAngezeigtes Bild von avcapture anzeigen
UIImage *Capture = [UIImage imageWithData:self.jpegPhotoData];
capturetest = Capture;
NSData *imageData;
imageData = [NSKeyedArchiver archivedDataWithRootObject:Capture];
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"image"];
Dann rief ich die NSUserDefaults mit einem Tastendruck mit diesem Code.
-(IBAction)test:(id)sender
{
NSLog(@"WAS IT PRESSED");
NSData *imageData1;
imageData1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"image"];
capturetest = [NSKeyedUnarchiver unarchiveObjectWithData: imageData1];
self.imgView.image = capture test;
}
Dies funktionierte perfekt. Als ich den Knopf drückte, zeigte er das Bild, das ich gerade aufgenommen habe, aber wie bekomme ich das Bild automatisch? Ich habe versucht, den Knopf-Code in eine void-Anweisung wie -(void)test
dann nach der Aufnahme des Fotos habe ich [self test]
genannt. Das hat nicht funktioniert. Ich habe sogar versucht, den Knopf automatisch so zu drücken, aber kein Glück.
[self performSelector: @selector(test:) withObject:self afterDelay: 0.0];
Um welche Art von Objekt ist self.imgView? Wie ist imgView mit NSUserDefaults verbunden? Haben Sie versucht, im Debugger durch '-test: 'zu gehen, wenn es funktioniert und wo es nicht funktioniert und verglichen, was anders ist? Welchen Wert hat self.imgView zu diesen Zeiten? Von wo rufst du '-test:' wenn du es nicht von einer Taste aus anrufst? – uliwitness