Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 21
Línea 3... Línea 3...
3
//  twogetskills
3
//  twogetskills
4
//
4
//
5
//  Created by Efrain Yanez Recanatini on 3/9/22.
5
//  Created by Efrain Yanez Recanatini on 3/9/22.
6
//
6
//
Línea -... Línea 7...
-
 
7
 
Línea -... Línea 8...
-
 
8
import DataCache
-
 
9
 
-
 
10
class ImageCache {
-
 
11
    
-
 
12
    public let cache :  DataCache
-
 
13
    
-
 
14
    static let sharedInstance: ImageCache = {
-
 
15
           let instance = ImageCache()
-
 
16
           
-
 
17
           // setup code
-
 
18
           return instance
-
 
19
    }()
-
 
20
    
-
 
21
    init() {
-
 
22
        cache = DataCache(name: "2GetSkillsCustomCache")
-
 
23
        cache.maxDiskCacheSize = 600*1024*1024      // 100 MB
-
 
24
        cache.maxCachePeriodInSecond = 7*86400      // 1 week
-
 
25
    }
-
 
26
    
-
 
27
    
-
 
28
 
-
 
29
    
-
 
30
    
7
 
31
}
Línea -... Línea 32...
-
 
32
 
8
 
33
//import UIKit
9
import UIKit
34
 
10
 
35
/*
Línea 11... Línea 36...
11
protocol ImageCache {
36
protocol ImageCache {
Línea 22... Línea 47...
22
        }
47
        }
23
    }
48
    }
Línea 24... Línea 49...
24
    
49
    
25
    private let cache: NSCache<NSString, UIImage> = {
50
    private let cache: NSCache<NSString, UIImage> = {
-
 
51
        let cache = NSCache<NSString, UIImage>()
26
        let cache = NSCache<NSString, UIImage>()
52
        
27
        cache.countLimit = 100 // 100 items
53
        cache.countLimit = 100 // 100 items
28
        cache.totalCostLimit = 1024 * 1024 * 600 // 600 MB
54
        cache.totalCostLimit = 1024 * 1024 * 600 // 600 MB
29
        return cache
55
        return cache
30
    }()
-
 
31
    
-
 
32
    /*
-
 
33
    subscript(_ key: String) -> UIImage? {
-
 
34
        get { cache.object(forKey: key as NSString) }
-
 
35
        set { newValue == nil ? cache.removeObject(forKey: key as NSString) : cache.setObject(newValue!, forKey: key as NSString) }
-
 
36
    }
-
 
37
 */
-
 
38
}
-
 
39
 
-
 
40
 
-
 
41
 
-
 
42
/*
-
 
43
protocol ImageCache {
-
 
44
    subscript(_ url: URL) -> UIImage? { get set }
-
 
45
}
-
 
46
 
-
 
47
struct TemporaryImageCache: ImageCache {
-
 
48
    private let cache: NSCache<NSURL, UIImage> = {
-
 
49
        let cache = NSCache<NSURL, UIImage>()
-
 
50
        cache.countLimit = 100 // 100 items
-
 
51
        cache.totalCostLimit = 1024 * 1024 * 600 // 600 MB
-
 
52
        return cache
-
 
53
    }()
-
 
54
    
-
 
55
    subscript(_ key: URL) -> UIImage? {
-
 
56
        get { cache.object(forKey: key as NSURL) }
-
 
57
        set { newValue == nil ? cache.removeObject(forKey: key as NSURL) : cache.setObject(newValue!, forKey: key as NSURL) }
-
 
58
    }
56
    }()
59
}
57
}