NSCache-Initialisierung zum Speichern von UIImage ios

Ich verwende NSCache zum Speichern von Bildern. Aber Problem hier ist, wenn ich zwischen Controllern wechsle, leert sich NSCache. Ich möchte, dass die Objekte mindestens so lange dort sind, bis die Anwendung geschlossen wird oder sich der Benutzer abmeldet. Nehmen wir an, ich habe eine Registerkartenansicht und speichere Bilder aus den Daten in der ersten Registerkarte. Wenn ich zum zweiten Tab gehe und zum ersten zurückschalte, wird NSCache erneut initialisiert.

Hier ist mein Code: -

- (void)viewDidLoad {
[super viewDidLoad];
if(imageCache==nil)
{
    imageCache=[[NSCache alloc]init];
    NSLog(@"initialising");
}
[imageCache setEvictsObjectsWithDiscardedContent:NO];
}


(void) reloadMessages {

[Data getClassMessagesWithClassCode:_classObject.code successBlock:^(id object) {
    NSMutableArray *messagesArr = [[NSMutableArray alloc] init];
    for (PFObject *groupObject in object) {

        PFFile *file=[groupObject objectForKey:@"attachment"];
        NSString *url1=file.url;
        NSLog(@"%@ is url to the image",url1);
        UIImage *image = [imageCache objectForKey:url1];
        if(image)
        {
            NSLog(@"This is cached");

        }
        else{

            NSURL *imageURL = [NSURL URLWithString:url1];
            UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:imageURL]];

            if(image)
            {
                NSLog(@"Caching ....");
                [imageCache setObject:image forKey:url1];
            }

        }

    }

Das Steuerelement geht nie zur ersten if-Anweisung. Vermisse ich etwas?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage