swift - Swift Userdefaults 将 String 转换为 __NSCFString
问题描述
我有保存 in 字典的[String: Any]
代码 UserDefaults
。检索String
时更改为__NSCFString
。我Mixpanel
用来跟踪事件并将这个字典作为事件属性发送。现在问题__NSCFString
不是有效的MixpanelType
,所以 Mixpanel 正在丢弃我的字典。
问题:
- 有没有办法在 UserDefaults 中获取使用字典保存的相同数据类型?
- Mixpanel 有没有办法接受转换后的数据类型?
这是我正在使用的代码
var mixpanelProperties: [String: Any] {
get { defaults.dictionary(forKey: "\(#function)") ?? [:] }
set { defaults.set(newValue, forKey: "\(#function)") }
}
mixpanelProperties = ["a-key": "value for the key"]
let prop = mixpanelProperties
print("Type of: \(String(describing: prop["a-key"]))")
阿斯达德
解决方案
MacOS 和 iOS 使用各种不同的类来表示字符串,它们都是兼容的。x 作为?无论 x 的具体类是什么,字符串都应该可以工作。除非你使用明确检查你不应该做的类的代码。
推荐阅读
- amazon-web-services - 将 Traefik 与 EC2 一起使用,前端规则如何更改 url
- python - 是否有一个函数可以从字符串中删除任何符号(%、# 等)?
- django - Django,将默认数据库引擎更改为 djongo 时无法迁移
- excel - 防止纸张自动打开
- pdf - 在用户单击的位置注释 pdf 文件
- javascript - 如何使用 javascript 滚动 youtube 播放列表
- angular - 路由 2 个具有相同延迟加载模块的组件
- openshift - madlib 无法在 openshift 上启动
- html - 如何修复“将文本悬停到图像,文本保持其原始位置和背景中的 img 变化”
- c++ - 为什么我的程序连续运行而不停止?