我有一个函数,它接受一个字典键(从JSON文件解析)并返回值,如果它可以转换为字符串,或者如果它不能转换或不存在则返回空字符串。函数本身工作正常,但我想让它记录一个警告,如果值无效/缺失,我不知道最好的方法是什么。我知道我可以将密钥的文本作为第二个参数传递,但函数将会运行多次,所以我希望有更优雅的东西。是否可以从函数中检索原始参数/键,或者可能有更好的方法来执行此操作?
let someDict = [String:Any]()
func getStringObject (fromKey: Any?) -> String {
if let object = fromKey as? String {
return object
} else {
print("Invalid or missing value for ???, using default.") // want to print the original argument or at least the key string
return ""
}
}
let someString = getStringObject(someDict["someInvalidKey"]) // should print someDict["someInvalidKey"] or someInvalidKey