Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class GCDDataManager {
- var data: [[String : String]]
- var queue: DispatchQueue
- init(_ dataForFile: [[String : String]], _ queueForFiles: DispatchQueue) {
- data = dataForFile
- queue = queueForFiles
- }
- let file = "data.json"
- func writeData() -> Bool{
- var success: Bool
- success = false
- queue.sync(flags: .barrier) {
- guard let documentDirectoryUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
- let fileUrl = documentDirectoryUrl.appendingPathComponent(file)
- do {
- let data = try JSONSerialization.data(withJSONObject: self.data, options: [])
- try data.write(to: fileUrl, options: [])
- success = true
- } catch {
- print(error)
- }
- }
- return success
- }
- func readData() -> [[String : String]]? {
- var success: Bool
- success = false
- var data: [[String : String]]
- data = [["" : ""]]
- queue.sync(flags: .barrier) {
- let fileUrl = Bundle.main.path(forResource: "data", ofType: "jsonβ)
- // Read data from .json file and transform data into an array
- do {
- let data = try Data(contentsOf: fileUrl, options: [])
- guard (try JSONSerialization.jsonObject(with: data, options: []) as? [[String: [String: String]]]) != nil else { return }
- success = true
- } catch {
- print(error)
- }
- }
- if success {
- return data
- }
- else {
- return nil
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement