title: NSCache is returning null after restarting project
body: <p>I'm working with <code>NSCache</code> in Objective-C and Cocoa for iOS. Every time I restart the project, the <code>getCacheRecommend</code> call returns <code>null</code> and I expect it to return a value.</p>
  
  <pre><code>#import &lt;Foundation/Foundation.h&gt;
  @class ASJsonDiscoverModel;
  @interface ASUserCache : NSObject
  
  + (ASUserCache *)sharedInstance;    
  - (void)clear;
  - (void)setCacheRecommend:(ASJsonDiscoverModel *)discover;
  - (ASJsonDiscoverModel *)getCacheRecommend;
  </code></pre>
  
  <p><code>ASJsonDiscoverModel</code> is my custom object class.</p>
  
  <pre><code>#import "ASUserCache.h"
  @interface ASUserCache ()
  @property (nonatomic,strong) NSCache *cache;
  @end
  
  @implementation ASUserCache
  
  + (ASUserCache *)sharedInstance
  {
      __strong static ASUserCache *cache = nil;
      static dispatch_once_t onceToken;
      dispatch_once(&amp;onceToken, ^{
          cache = [[ASUserCache alloc] init];
      });
      return cache;
  }
  
  - (instancetype)init
  {
      if (self = [super init]) {
           _cache = [[NSCache alloc] init];
      }
      return self;
  }
  
  - (void)setCacheRecommend:(ASJsonDiscoverModel *)discover
  {
      NSString *key = @"channelRecommend";
      [_cache removeObjectForKey:key];
      [_cache setObject:discover forKey:key];
  }
  
  - (ASJsonDiscoverModel *)getCacheRecommend
  {
      NSString *key = @"channelRecommend";
      return [_cache objectForKey:key];
  }
  
  - (void)clear
  {
      if (_cache) {
          [_cache removeAllObjects];
      }
  }
  
  - (NSString *)keyforUserID:(NSString *)userID
  {
      return [NSString stringWithFormat:@"**%@",userID];
  }
  </code></pre>