2015-02-04 1 views
1

Я использую SDwebimage Framework для кэширования изображений, поэтому загрузка количества изображений увеличивается ежедневно, поэтому через 3-4 дня использования приложения вызывает увеличение кеша, что приводит к ухудшению производительности приложения. производительностьКэш sdwebimage достигает максимального размера

ответ

0

Взгляните на это ТАК размещать here

Вы можете установить период для того, как долго будет длиться кэш, а затем она будет очищена. Кроме того, вы можете поиграть с значением maxCacheSize в SDImageCache.m в файле cleanDiskWithCompletionBlock.

// If our remaining disk cache exceeds a configured maximum size, perform a second 
    // size-based cleanup pass. We delete the oldest files first. 
    if (self.maxCacheSize > 0 && currentCacheSize > self.maxCacheSize) { 
     // Target half of our maximum cache size for this cleanup pass. 
     const NSUInteger desiredCacheSize = self.maxCacheSize/2; 

     // Sort the remaining cache files by their last modification time (oldest first). 
     NSArray *sortedFiles = [cacheFiles keysSortedByValueWithOptions:NSSortConcurrent 
                 usingComparator:^NSComparisonResult(id obj1, id obj2) { 
                  return [obj1[NSURLContentModificationDateKey] compare:obj2[NSURLContentModificationDateKey]]; 
                 }]; 

     // Delete files until we fall below our desired cache size. 
     for (NSURL *fileURL in sortedFiles) { 
      if ([_fileManager removeItemAtURL:fileURL error:nil]) { 
       NSDictionary *resourceValues = cacheFiles[fileURL]; 
       NSNumber *totalAllocatedSize = resourceValues[NSURLTotalFileAllocatedSizeKey]; 
       currentCacheSize -= [totalAllocatedSize unsignedIntegerValue]; 

       if (currentCacheSize < desiredCacheSize) { 
        break; 
       } 
      } 
     } 
    } 
+0

Большое спасибо @ashes к пеплу – user1330379

+0

как установить некоторый максимальный предел, как 20 МБ в приведенном выше блоке кода @AshesToAshes –