1

让我快点来发。到目前为止,我的代码没有问题。我唯一关心的是内存管理。让我让我的应用程序逻辑清晰。

  1. 当应用程序全局启动时,声明了 NSmutableDictionary 并将近 300 个图像添加到该字典中,并使用 pathForResource:ofType 方法添加了各种键和图像。

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

  3. 我有 4 个 ViewControllers,我将在其中使用这个 UIViews 和图像到全局字典中的所有 ViewControllers。

  4. 当移动到另一个视图控制器时,我释放视图并使其为零。

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

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

即使我的 Live 字节最大为 5 MB,我也不知道它崩溃的原因。我从控制台和设备日志中得到的只是接收到的内存警告。使用仪器时无泄漏和无脏尺寸或常驻尺寸。

在模拟器中运行时,我仅在多个设备上才遇到此问题,但我遇到了此问题。

我有以下疑问

  • 在全局字典中添加所有内容是否好。我的想法是减少每个 ViewControllers 的加载时间

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

提前致谢 ...

4

1 回答 1

5

所以你的问题:

收到内存警告的未知原因

第一个原因:

当应用程序全局启动时,声明了 NSmutableDictionary 并 将近 300 个图像添加到该字典中,并使用 pathForResource:ofType 方法添加了各种键和图像。

第二个原因:

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

其他问题:

在全局字典中添加所有内容是否好。我的想法是减少每个 ViewControllers 的加载时间

不,这不是......延迟初始化

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

你可以使用任何你想要的东西,只要你真正需要它时使用它。

于 2013-03-21T13:00:13.990 回答