|
//
// LocalStorage.swift
// PaiAi
//
// Created by mac on 2016/10/28.
// Copyright © 2016年 FFIB. All rights reserved.
//
import UIKit
import ObjectMapper
extension UserDefaults {
struct Group: ArrayUserDefaultable {
enum ArrayDefaultKey: String {
case lastVisitGroup
}
}
}
func addGroupInfoToRecent(_ groupInfo: GroupModel) {
let group = NSKeyedArchiver.archivedData(withRootObject: groupInfo.toJSON())
let md5Id = groupInfo.group_id.digestString(algorithm: .md5)
let data: [String : Data] = [md5Id: group]
if var array = UserDefaults.Group.array(forKey: .lastVisitGroup) as? [[String : Data]] {
var arr = [[String: Data]]()
for i in 0..<array.count {
if (Array(array[i].keys) as [String])[0] != md5Id {
arr.append(array[i])
}
}
if arr.count == 3 {
arr.removeFirst()
}
arr.append(data)
UserDefaults.Group.set(arr, forKey: .lastVisitGroup)
} else {
UserDefaults.Group.set([data], forKey: .lastVisitGroup)
}
}
func searchGroupInfoRecent(index: Int) -> GroupModel {
if let locale = UserDefaults.Group.array(forKey: .lastVisitGroup) as? [[String : Data]] {
guard let dict = NSKeyedUnarchiver.unarchiveObject(with: (Array(locale[index].values) as [Data])[0]) as? [String: Any] else {
return GroupModel()
}
return GroupModel(map: Map(mappingType: .fromJSON, JSON: dict))
}
return GroupModel()
}
func removeGroupInfoRecent(groupId: String) {
let md5Id = groupId.digestString(algorithm: .md5)
if let array = UserDefaults.Group.array(forKey: .lastVisitGroup) as? [[String : Data]] {
let newArr = array.filter({ (element) -> Bool in
return !element.keys.contains(md5Id)
})
UserDefaults.Group.set(newArr, forKey: .lastVisitGroup)
}
}
func returnGroupInfoCount() -> Int {
if let locale = UserDefaults.Group.array(forKey: .lastVisitGroup) as? [[String : Data]] {
return locale.count
}
return 0
}
|