2015-05-08 4 views
-2

Я новичок в NSCache, я хочу кэшировать данные ответа и использовать его. Поэтому мой [cache setobject] находится в классе A, и мне нужно получить его из класса B, используя [cache objectForKey]. Но это всегда NULL .Это работает в том же классе, как показано ниже ..NSCache получить объект из другого класса

NSURL *url = [NSURL URLWithString:@"http://ios.eezytutorials.com/sample-files/sample-dictionary-plist.plist"]; 
NSDictionary *dict = [[NSDictionary alloc]initWithContentsOfURL:url]; 
NSCache *cache = [[NSCache alloc]init]; 
[cache setObject:dict forKey:url]; 
NSLog(@"%@",[cache objectForKey:url]); 

Как получить, что из другого класса?

ответ

1

NSCache не является одиночным или общим экземпляром. Если вы хотите использовать содержимое определенного экземпляра, вы можете поместить свой экземпляр NSCache в AppDelegate или создать собственный класс singleton для управления им.

+0

Спасибо. Я попробовал, расширил NSCache .. создал singleton, но все равно получаю NULL .. MyDataCache * _cache = [MyDataCache sharedQDataCache]; // MyRequestDataModel * prevCachedData = [_cache objectForKey: [self.url absoluteString]]; NSLog (@ "% @", [_ cache objectForKey: [self.url absoluteString]]); –

+0

Не могли бы вы обновить свой вопрос с помощью этой одноэлементной реализации? Может быть, я могу помочь вам в этом. – FormigaNinja

Смежные вопросы