2016-04-28 3 views
0

Ich möchte die Größe von Speichercache und Plattencache für SDImageCache begrenzen. Unten ist der Code, den ich für den Download der Bilder verwendet habe. Standardmäßig speichert es die Bilder im Cache und ist im Bibliotheksordner der Sandbox vorhanden.So begrenzen Sie die Größe des Platten- und Speichercaches von SDImageCache

meine Anwendung ID/Library/Caches/com.hackemist.SDWebImageCache.default/

#import <SDWebImage/UIImageView+WebCache.h> 

... 

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     static NSString *MyIdentifier = @"MyIdentifier"; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
              reuseIdentifier:MyIdentifier] autorelease]; 
     } 

     // Here we use the new provided sd_setImageWithURL: method to load the web image 
     [cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] 
          placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

     cell.textLabel.text = @"My Text"; 
     return cell; 
    } 

Antwort

0

Wenn Sie schauen, um die maximale Größe des Cache-Speichers zu begrenzen, können Sie manuell tun das in SDImageCache.m und setzen maxCacheSize auf eine begrenzte Anzahl von Bytes. Sie können einen Blick darauf werfen, wie das Cache-Alter auf eine Woche mit
static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week
ist und das gleiche für die Cache-Größe tun.

+0

Gibt es eine andere Methode? – Burak

1

Objective-C

// Setting disk cache  
[[[SDImageCache sharedImageCache] config] setMaxCacheSize:1000000 * 20]; // 20 MB 

// Setting memory cache 
[[SDImageCache sharedImageCache] setMaxMemoryCost:15 * 1024 * 1024]; // aprox 15 images (1024 x 1024) 

Swift 4

// Setting disk cache 
SDImageCache.shared().config.maxCacheSize = 1000000 * 20 // 20 MB 

// Setting memory cache 
SDImageCache.shared().maxMemoryCost = 15 * 1024 * 1024 
Verwandte Themen