清理Swift字典以隐藏密码

时间:2018-12-07 20:11:56

标签: swift dictionary

我有一个[String : NSObject]字典,在将其记录到文件记录器之前要对其进行清理。

字典的格式如下:

{
   "login" : {
       "cred": {
          "pass": "mySuperSecretPassword"
       }
   }
}

我遇到了一个解决方案,但这非常丑陋。

func sanitize(dict dictionary:[String: NSObject]?) -> [String: NSObject]? {
    if var d = dictionary {
        if var login = d["login"] as? [String: NSObject] {
            if var cred = login["cred"]  as? [String: NSObject]{
                if let _ = cred["pass"] as? String{
                    cred["pass"] = "REDACTED" as NSObject
                }
                login["cred"] = cred as NSObject
            }
            d["login"] = login as NSObject
        }
        return d
    }
    return nil
}

考虑到Swift没有字典的本机键路径,我希望看到一个更干净,更惯用的解决方案。

0 个答案:

没有答案