Objective-c 中的内存警告

发布于 2024-10-31 02:07:33 字数 205 浏览 0 评论 0原文

我有一个有很多视图的应用程序,大约有 20 个,可以从两个主菜单访问,每个视图中都有标签、文本字段和按钮,在背景图像上。 作为数据,我有一个全局类和一些由 xml 文件填充的数组。

如果内存警告触发,我应该释放不需要的内容,但是如果您在一个视图中,则另一视图中的所有内容都已释放,对吗?我应该取消分配什么?删除全局类 i 将丢失基本数据,数组也是如此。 建议? (抱歉英语不好)。

I have an application with lots of view, about 20, accessible from two main menus, in each view there are labels, textfields and buttons, over a background image.
As data i've a global class and some array filled by xml files.

If memoryWarning fires, I should release what is not necessary, but if you are in one view, all in the other view is already deallocated right? What should I deallocate? Removing the global class i will lose essential data, the same for array.
Suggestions? (Sorry for bad english).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挖个坑埋了你 2024-11-07 02:07:33

您留下的视图不一定会被释放,这完全取决于代码。所以你可以同时将所有内容保存在内存中,而内存在 iOS 上是稀缺资源。因此,如果您有很多视图,请取消分配当前不使用的视图。

收到内存警告后,您应该删除不需要的所有内容。留意数组中的 XML 文件,XML 文件往往很大:作为源,在解析后作为内存中的 DOM 树。您可以尝试使它们全部延迟加载和解析,如果不再需要则将其丢弃,如果再次需要则重新加载(然后您必须保存它们的加载状态,但这可能是一个简单的布尔值数组而不是整个 XML 数据)。

The views you have left are not necesserily deallocated, it all depends on the code. So you possible hold everything in the memory at the same time and memory is a scarse resource on iOS. So if you have a lot of views deallocate those that you don't currently use.

After receiving memory warning you should remove everything that you not need. Keep an eye on those XML files in arrays, XML files tend to be big: as the source and as a DOM tree in the memory after being parsed. You can try to make them all being lazy loaded and parsed, throw them away if not more needed, reload if needed again (you have then to save their loading state, nut this could be a simple array of boolean value instead of whole XML data).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文