接收内存警告的未知原因

让我快来发。 到目前为止我的代码没有问题。 我唯一关心的是内存管理。 让我明确我的应用逻辑。

  1. 当App全局启动时,声明了NSmutableDictionary,并且使用pathForResource:ofType方法添加了近300个图像,其中包含各种键和图像。

  2. 在我的rootViewController加载后,我的35个自定义UIViews被添加到另一个键的同一个全局字典中。(这个rootViewController不会经常使用)

  3. 我有4个ViewControllers,我将把这个UIViews和图像用于全局字典中的所有ViewControllers。

  4. 我移动到另一个viewController时释放视图并使其为nil。

  5. 我的问题是当我在ViewControllers之间快速移动时(1 – > 2 – > 3 – > 4 – > 1)。 如果我这样做4-6次就会崩溃。

  6. 如果我慢慢移动,它会在10到15次之后崩溃。

我不知道为什么它崩溃甚至我的Live字节最大5 MB。 所有我从控制台和设备日志获得的是Received Memory警告。 使用仪器时无泄漏,无脏污尺寸或居民尺寸。

在模拟器中运行时,我不会在多个设备上遇到此问题,我遇到了这个问题。

我有疑虑

  • 是否善于在全球词典中添加一切。 我的想法是减少每个ViewControllers的加载时间

  • 为了重用相同的图像,我们可以使用pathForResource或图像命名方法。

提前致谢 …

所以你的问题:

接收内存警告的未知原因

第一个原因:

当App全局启动时,声明了NSmutableDictionary 并且使用pathForResource:ofType方法添加了近300个图像,其中包含各种键和图像。

第二个原因:

在我的rootViewController加载后,我的35个自定义 UIViews 被添加到另一个键的同一个全局字典中。 (这个rootViewController不会经常使用)

其他问题:

是否善于在全球词典中添加一切。 我的想法是减少每个ViewControllers的加载时间

不,这不是…… 懒惰的初始化 ?

为了重用相同的图像,我们可以使用pathForResource或图像命名方法。

只要您在实际需要时使用它,您就可以使用任何您想要的东西。