让我来快速发布。到目前为止我的代码没有问题。我唯一关心的是内存管理。让我明确我的应用逻辑。
当全局启动App时,声明了NSmutableDictionary,并且使用各种键添加了近300个图像,并使用pathForResource:ofType方法添加了图像。
在我的rootViewController加载后,我的35个自定义UIViews被添加到另一个键的同一个全局字典中。(这个rootViewController不会经常使用)
我有4个ViewControllers,我将把这个UIViews和图像用于全局词典中的所有ViewControllers。
我移动视图并在移动到另一个viewController时将其设为nil。
我的问题是我在ViewControllers之间快速移动(1 - > 2 - > 3 - > 4 - > 1)。如果我这样做了4-6次就会崩溃。
如果我慢慢移动,它会在10到15次后崩溃。
我不知道为什么它崩溃甚至我的Live字节最大5 MB。所有我从控制台和设备日志获得的是Received Memory警告。使用仪器时没有泄漏,没有脏的尺寸或居民大小。
在模拟器中运行时,我不会在多个设备上遇到此问题,我遇到了这个问题。
我有以下怀疑
是否可以在全局字典中添加所有内容。我的想法是减少每个ViewControllers的加载时间
重复使用相同的图像我们可以使用pathForResource或图像命名方法..
提前致谢...
答案 0 :(得分:5)
所以你的问题:
接收内存警告的未知原因
第一个原因:
当App全局启动时,声明了NSmutableDictionary 将近300张图像添加到该词典,其中包含各种键,并使用pathForResource:ofType方法添加图像。
第二个原因:
在我的rootViewController加载后,我的添加了35个自定义UIViews 带有另一个键的相同全局字典。(这个rootViewController 不会经常使用)
其他问题:
是否可以在全局字典中添加所有内容。我的想法是 减少每个ViewControllers的加载时间
不,这不是...... Lazy Initialization?
重复使用相同的图像我们可以使用pathForResource或图像命名 方法..
只要您在实际需要时使用它,就可以使用您想要的任何内容。