Skip to content

Commit 819f58e

Browse files
authored
Add files via upload
1 parent 8579d38 commit 819f58e

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed

OfflineManager.swift

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
//
2+
// OfflineManager.swift
3+
// ARApp
4+
//
5+
// Created by Prashant on 01/05/18.
6+
// Copyright © 2018 Prashant. All rights reserved.
7+
//
8+
9+
import UIKit
10+
11+
class OfflineManager: NSObject {
12+
13+
static let sharedManager = OfflineManager()
14+
let LocalServiceCacheDownloadDir = "LocalData"
15+
16+
enum WSCacheKeys {
17+
case CampignList
18+
case CampignDetail(id:String)
19+
case ScreenShotList
20+
21+
var value:String {
22+
switch self {
23+
case .CampignList:
24+
return "CampignList"
25+
case .CampignDetail(let id):
26+
return id
27+
case .ScreenShotList :
28+
return "ScreenShotList"
29+
}
30+
31+
}
32+
}
33+
34+
func getBaseForCacheLocal(with fileName:String) -> String? {
35+
36+
let filePath = FileManager.default.getDocumentPath(forItemName: self.LocalServiceCacheDownloadDir)
37+
if FileManager.default.directoryExists(atPath: filePath) {
38+
return filePath.stringByAppendingPathComponent(fileName)
39+
} else {
40+
if FileManager.default.createDirectory(withFolderName: self.LocalServiceCacheDownloadDir) {
41+
return filePath.stringByAppendingPathComponent(fileName)
42+
}
43+
}
44+
return nil
45+
}
46+
47+
48+
49+
//------------------------------------------------------------
50+
51+
@discardableResult
52+
func cacheDataToLocal<T>(with Object:T,to key:WSCacheKeys) -> Bool {
53+
let success = NSKeyedArchiver.archiveRootObject(Object, toFile: getBaseForCacheLocal(with: key.value)!)
54+
if success {
55+
print( "Local Data Cached\(String(describing: getBaseForCacheLocal(with: key.value)))")
56+
} else {
57+
print("Error")
58+
}
59+
60+
return success
61+
62+
}
63+
64+
//------------------------------------------------------------
65+
66+
func loadCachedDataFromLocal<T>(with key:WSCacheKeys ) -> T? {
67+
return NSKeyedUnarchiver.unarchiveObject(withFile: getBaseForCacheLocal(with: key.value)!) as? T
68+
}
69+
70+
71+
//------------------------------------------------------------
72+
73+
74+
func removeAllCacheDirs () {
75+
do {
76+
try FileManager.default.removeItem(atPath: self.getBaseForCacheLocal(with: "")!)
77+
78+
} catch {
79+
print("error in remove dir \(error.localizedDescription)")
80+
}
81+
82+
}
83+
84+
//--------------------------------------------------------------------------------
85+
86+
87+
}

0 commit comments

Comments
 (0)