import Foundation
extension Dictionary {
///字典的安全插入
mutating func set(_ key : Dictionary.Key , _ value : Dictionary.Value?) {
if let o = value {
self[key] = o
} else {
print("Warning! Dictionary:\(self) append an nil value key is '\(key)'")
}
}
/// 字典安全取值
func object(_ key : Dictionary.Key) -> Dictionary.Value? {
let value = self[key]
if value == nil {
return nil
}
return value
}
func string(_ key : Dictionary.Key) -> String {
let value = self[key]
if value == nil {
return ""
}
if let s = value as? String {
return s
}
if let i = value as? Int {
return i.description
}
if let d = value as? Double {
return d.description
}
return ""
}
func int(_ key : Dictionary.Key) -> Int {
let value = self[key]
if value == nil {
return 0
}
if let s = value as? String {
if let n = Int(s) {
return n
}else {
print("Warning! Dictionary:\(self) int for key:'\(key)' value:'\(s)' is not cover to Int!")
return 0
}
}
if let i = value as? Int {
return i
}
if let d = value as? Double {
return Int(d)
}
return 0
}
func double(_ key : Dictionary.Key) -> Double {
let value = self[key]
if value == nil {
return 0.0
}
if let s = value as? String {
if let n = Double(s) {
return n
}else {
print("Warning! Dictionary:\(self) int for key:'\(key)' value:'\(s)' is not cover to Double!")
return 0
}
}
if let i = value as? Int {
return Double(i)
}
if let d = value as? Double {
return d
}
return 0.0
}
// 处理字典中所有空值
func scrollDic(dic : Dictionary<String,Any>) -> Dictionary<String,Any> {
var tempDic : Dictionary<String,Any> = dic
for item in tempDic.keys {
if(tempDic[item] == nil || (tempDic[item] as? NSNull) != nil ){
tempDic[item] = ""
}
if((tempDic[item] as? Dictionary<String,Any>) != nil ){
let getDic = scrollDic(dic: tempDic[item] as! Dictionary<String,Any>)
tempDic[item] = getDic
}
if((tempDic[item] as? [Dictionary<String,Any>]) != nil ){
let tempArr : [Dictionary<String,Any>] = (tempDic[item] as! [Dictionary<String,Any>])
var tempNArr : [Dictionary<String,Any>]? = []
tempNArr?.removeAll()
for i in tempArr{
let iDic = scrollDic(dic: i )
tempNArr?.append(iDic)
}
tempDic[item] = tempNArr
}
}
return tempDic
}
}
网友评论