Swift 多次设置用户默认值导致显示速度变慢

Swift 多次设置用户默认值导致显示速度变慢,swift,performance,memory,nsuserdefaults,Swift,Performance,Memory,Nsuserdefaults,我有一个相当广泛的应用程序,我在其中存储了大量的数据。CL1定位1、数组、CGPoints等。有时需要在设备上保存所有这些变量,所以我使用UserDefaults。然而,在经过一段时间的视图控制器切换和简单地使用应用程序(不断更改数据=>不断保存数据)后,我达到了一切运行缓慢的地步 现在,假设我有或多或少的3个二维数组,假设5个整数我想保存为UserDefaults 每次更改其中一个变量时,我都会使用相同的命令“更新”它: UserDefaults.standard.set(data, forK

我有一个相当广泛的应用程序,我在其中存储了大量的数据。CL1定位1、数组、CGPoints等。有时需要在设备上保存所有这些变量,所以我使用UserDefaults。然而,在经过一段时间的视图控制器切换和简单地使用应用程序(不断更改数据=>不断保存数据)后,我达到了一切运行缓慢的地步

现在,假设我有或多或少的3个二维数组,假设5个整数我想保存为UserDefaults

每次更改其中一个变量时,我都会使用相同的命令“更新”它:

UserDefaults.standard.set(data, forKey: "UDdata"). 

所以每次我想改变数据时,我都会通过那个特别的注释来改变它。我想每次我这样做的时候,我都应该以某种方式摆脱键UDdata的先前数据,然后用相同的键字符串设置它?关于这一问题的信息将是有用的。提前感谢

原因是您误用了Userdefaults。它们将存储一些小值,如用于检测首次启动、首选项等的标志。而不是将数据存储在Userdefaults中,只需尝试使用CoreData或SQLite即可。这也是更容易使用的方法

核心数据:

SQLite:
原因是您误用了Userdefaults。它们将存储一些小值,如用于检测首次启动、首选项等的标志。而不是将数据存储在Userdefaults中,只需尝试使用CoreData或SQLite即可。这也是更容易使用的方法

核心数据:

SQLite:
UserDefaults
不是存储应用程序数据的合适位置。虽然@rmaddy肯定是对的,但我不认为在这里误用UserDefaults是你的问题。至少我从未经历过减速;)无论如何,我更倾向于认为这是一般内存泄漏。我强烈建议使用Instruments.app中的“time profile”工具直接调查您的问题。
UserDefaults
不是存储应用程序数据的合适位置。虽然@rmaddy肯定是对的,但我不认为在这里误用UserDefaults是你的问题。至少我从未经历过减速;)无论如何,我更倾向于认为这是一般内存泄漏。我强烈建议使用Instruments.app中的“time profile”工具直接调查您的问题。我面临着同样的问题,我没有使用大量数据。只有一个12位字符串标识符。有时(特别是在重新安装后),完成设置操作需要很长时间。另外,奇怪的是,它大多发生在重新安装之后,因为重新安装(删除和安装)应该会删除所有以前的数据。我面临着同样的问题,我没有使用大量的数据。只有一个12位字符串标识符。有时(特别是在重新安装后),完成设置操作需要很长时间。另外,奇怪的是,它主要发生在重新安装之后,因为重新安装(删除和安装)应该删除所有以前的数据。