Ich versuche, Kacheln für ein größeres Bild zu erstellen, und es scheint, dass ab IOS 10 der folgende Code nicht mehr funktioniert und mit EXC_BAD_ACCESS abstürzt.CGImageDestinationFinalize oder UIImageJPEGRepräsentation - Absturz beim Speichern einer großen Datei auf IOS 10
Dies passiert nur auf IOS 10 Gerät, IOS 9 funktioniert gut.
Der Absturz passiert mit jedem Bild, das größer als ~ 1300x1300 ist.
Profiling in Instrumenten ergibt nichts Interessantes und zeigt auf CGImageDestinationFinalize.
Es gibt keine Speicherspitze.
habe ich versucht, in beide Richtungen unter:
UIImage* tempImage = [UIImage imageWithCGImage:tileImage];
NSData* imageData = UIImageJPEGRepresentation(tempImage, 0.8f); // CRASH HERE.
ODER
+ (BOOL) CGImageWriteToFile: (CGImageRef) image andPath: (NSString *)path
{
CFURLRef url = (__bridge CFURLRef)[NSURL fileURLWithPath:path];
CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypeJPEG, 1, NULL);
if (!destination) {
NSLog(@"Failed to create CGImageDestination for %@", path);
return NO;
}
CGImageDestinationAddImage(destination, image, nil);
if (!CGImageDestinationFinalize(destination)) { // CRASH HERE
NSLog(@"Failed to write image to %@", path);
CFRelease(destination);
return NO;
}
CFRelease(destination);
Wie ich es UIImageJPEGRepresentation wiederum verstehen schließlich CGImageDestinationFinalize nennt.
Edit: vergessen zu erwähnen, die Bilder sind auf Festplatte geschrieben, aber etwa auf halbem Weg.
Das scheint wirklich etwas mit IOS 10 zu tun, könnte das ein Fehler sein?
Ich habe auch den Fehler mit Apple nur für den Fall abgelegt.
Jede Hilfe oder Workarounds zum Schreiben von großen Bildern wird sehr geschätzt.
* Könnte das ein Fehler sein? * Wenn Sie das jemals fragen, [nur Datei eins] (http://bugreport.apple.com). Fragen Sie auch SO, wenn Sie nach einer zusätzlichen Bestätigung/Hilfe/Problemumgehung suchen, aber trotzdem einen Fehler melden. – rickster
Fehler eingereicht. Jede Hilfe mit Workarounds wird geschätzt –