Advertisement
HXXXXJ

filter server response - add + delete

Mar 12th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.04 KB | None | 0 0
  1. class Entry{
  2.     let id : String
  3.     var checked : Bool
  4.     init(_ dic : [String: String]) {
  5.         id = dic["id"]!
  6.     }
  7. }
  8. //add to local array if not exist on local,
  9. func addNewEntryAndRemove(_ response : [[String : String]], _ localArr: inout [Entry] ){
  10.     var localMap = [String : Bool]()  // id : isOnServer
  11.     for entry in localArr{
  12.         localMap[entry.id] = false
  13.     }
  14.     for item in response{
  15.         let itemId = item["id"]!
  16.         if localMap[itemId] == nil{     //mark as onserver
  17.             localArr.append(Entry(item)) //add to local array if not exist on local,
  18.         }
  19.         localMap[itemId] = true
  20.     }
  21.    
  22.     //filter not on server item
  23.     localArr = localArr.filter({
  24.         localMap[$0.id] == true
  25.     })
  26. }
  27.  
  28.  
  29.  
  30.  
  31. //test
  32. let resp = [["id" : "123"],["id" : "3"],["id" : "23"]]
  33. var localArray = [Entry]()
  34. addNewEntryAndRemove(resp, &localArray)
  35.  
  36.  
  37. let resp2 = [["id" : "123"],["id" : "3"]]
  38. addNewEntryAndRemove(resp2, &localArray)
  39.  
  40.  
  41. for entry in localArray{
  42.     print(entry.id)
  43.     print()
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement