Bis zu iOS 3.2, habe ich diese Art von Code UIImageView
Bild im Hintergrund zu laden, und es funktioniert gut ...iOS4 & Hintergrund [UIImage setImage:]
Code:
- (void)decodeImageName:(NSString *)name
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage *newImage = [UIImage imageNamed:name];
[myImageView setImage:newImage];
[pool release];
}
...
[self performSelectorInBackground:@selector(decodeImageName:) withObject:@"ID"]
. .. auch wenn [UIImageView setImage:]
nicht Thread-sicher war!
Aber seit iOS 4 funktioniert es nicht mehr ... Bilder erscheinen auf dem Bildschirm zwei Sekunden nach setImage
Anruf. Und wenn ich einen [myImageView performSelectorOnMainThread:@selector(setImage:) withObject:newImage waitUntilDone:YES]
anstelle von [myImageView setImage:newImage]
mache, erscheinen Bilder sofort, aber scheinen wieder on-the-fly neu decodiert zu werden (das vorherige [UIImage imageNamed:]
ignorierend, das die Bilddaten bereits entschlüsseln musste), eine Pause auf meinem Hauptgewinde verursachend. Auch wenn die Dokumentation sagt Der zugrunde liegende Image-Cache ist unter allen Threads geteilt..
Irgendwelche Gedanken?
Hallo, vielen Dank für Ihre Frage.Ich habe mich gefragt, warum es jetzt nicht mit meiner App funktioniert. – GeneCode