【发布时间】:2017-09-16 05:02:04
【问题描述】:
我有一个相当广泛的应用程序,我在其中存储了大量数据。 CLLocation,数组,CGPoints 等等。有时需要在设备上保存所有这些变量,所以我使用 UserDefaults。然而,在切换 ViewControllers 并简单地使用应用程序(不断更改数据 => 不断保存它)之后,我到达了一切运行缓慢的地步。
现在,假设我有或多或少的三个二维数组,假设我想将 5 个 Int 保存到 UserDefaults。
每次我更改其中一个变量时,我都会通过相同的命令“更新”它:
UserDefaults.standard.set(data, forKey: "UDdata").
因此,每次我想要更改数据时,我都会通过特定的评论对其进行更改。我想每次我这样做时,我都应该以某种方式摆脱键 UDdata 的先前数据,然后使用相同的键字符串设置它?有关该事项的信息将很有用。提前致谢
【问题讨论】:
-
UserDefaults不是存储应用数据的合适位置。它适用于偏好等小值。 -
虽然@rmaddy 肯定是对的,但我不认为在这里滥用 UserDefaults 是您的问题。至少我从来没有经历过放慢速度;)无论如何,我更倾向于这是一般的内存泄漏
-
我强烈建议使用 Instruments.app 中的“时间配置文件”工具直接调查您的问题。
标签: swift performance memory nsuserdefaults