Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Entry{
- let id : String
- var checked : Bool
- init(_ dic : [String: String]) {
- id = dic["id"]!
- }
- }
- //add to local array if not exist on local,
- func addNewEntryAndRemove(_ response : [[String : String]], _ localArr: inout [Entry] ){
- var localMap = [String : Bool]() // id : isOnServer
- for entry in localArr{
- localMap[entry.id] = false
- }
- for item in response{
- let itemId = item["id"]!
- if localMap[itemId] == nil{ //mark as onserver
- localArr.append(Entry(item)) //add to local array if not exist on local,
- }
- localMap[itemId] = true
- }
- //filter not on server item
- localArr = localArr.filter({
- localMap[$0.id] == true
- })
- }
- //test
- let resp = [["id" : "123"],["id" : "3"],["id" : "23"]]
- var localArray = [Entry]()
- addNewEntryAndRemove(resp, &localArray)
- let resp2 = [["id" : "123"],["id" : "3"]]
- addNewEntryAndRemove(resp2, &localArray)
- for entry in localArray{
- print(entry.id)
- print()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement