掲題のとおりなのですが、[Int:String]とか[Date:String]とかは、UserDefaultsに保存できない。 逆は問題ないのに。
つまり、辞書のKey側の型に制限があって、Date、数値型、Bool、Arrayはダメみたいなんです。
回避策としては、
let dic = ["a",1]
UserDefaults.standard.set(Array(dic.keys), forKey: "dicKeys")
UserDefaults.standard.set(Array(dic.values), forKey: "dicVals")
とかするくらいしか思いつかないです。
もし、保存できない理由とか、よりより方法があれば是非教えてください。