Hi,
ich habe eine Methode geschrieben die überprüft ob eine Datei bereits im Documents Ordner der Sandbox exestiert und wenn nicht wird das Bild vom Web geladen und dort abgelegt.
Die Methode sieht wie folgt aus:
Alles anzeigen
Das Problem ist das ich diese Methode verwende um Bilder anzuzeigen in einem UICollectionView. Da diese Methode natürlich jedes mal aufgerufen wird sobald die Zelle wieder erscheint, ruckelt es teilweise und ich wollte fragen was man hier noch optimieren kann.
Eine Lösung wie SDWebImageCache ist keine Option da ich das Bild auch nach einem Neutstart der App komplett offline haben möchte.
ich habe eine Methode geschrieben die überprüft ob eine Datei bereits im Documents Ordner der Sandbox exestiert und wenn nicht wird das Bild vom Web geladen und dort abgelegt.
Die Methode sieht wie folgt aus:
Quellcode
- -(UIImage *) getImageFromDeviceWithFilename:(NSString *)fileName {
- NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
- NSString *docDirectory = [sysPaths objectAtIndex:0];
- NSString *filePath = [NSString stringWithFormat:@"%@/%@", docDirectory, fileName];
- if ([[UIImage alloc] initWithContentsOfFile:filePath]) {
- return [[UIImage alloc] initWithContentsOfFile:filePath];
- }else{
- NSString *suffix = @".jpg";
- if (self.isRetina) {
- suffix = @"@2x.png";
- }
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@", BASE_URL, [fileName stringByReplacingOccurrencesOfString:@".png" withString:suffix]]];
- [self saveImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:url]] withFileName:fileName ofType:@"jpg" inDirectory:documentsDirectory];
- NSData * imageData = [[NSData alloc] initWithContentsOfURL:url];
- return [UIImage imageWithData:imageData];
- }
- }
Das Problem ist das ich diese Methode verwende um Bilder anzuzeigen in einem UICollectionView. Da diese Methode natürlich jedes mal aufgerufen wird sobald die Zelle wieder erscheint, ruckelt es teilweise und ich wollte fragen was man hier noch optimieren kann.
Eine Lösung wie SDWebImageCache ist keine Option da ich das Bild auch nach einem Neutstart der App komplett offline haben möchte.