UI图像分配问题

发布于 2024-08-18 22:21:33 字数 310 浏览 4 评论 0原文

我在 UIScrollView 中有 3 个 UIImage,我用以下方式初始化这些图像:

UIImage *dimage = [[UIImage alloc] initWithData:data];

其中 data 是从 url 请求获取的 NSdata。之后我缓存图像。 当我检查内存分配时,3 个图像各占用 472 Kb,并且 CoreGraphics 库中的“img_data_lock”已请求分配。 当我检查磁盘缓存上该图像的大小时,每个图像为 230Kb。

我不知道如何才能占用更多空间。我希望我的问题很清楚。

I have 3 UIImages in UIScrollView and I am initializing these images in the following way:

UIImage *dimage = [[UIImage alloc] initWithData:data];

Where data is a NSdata gotten from url request. After this I am caching the images.
When I check memory allocation the 3 images takes up 472 Kb each and allocation has been requested by "img_data_lock" from CoreGraphics library.
When I check size of that image on disk cache it was 230Kb each.

I dont know how can it take more space. I hope my question is clear.

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

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

发布评论

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

评论(1

对风讲故事 2024-08-25 22:21:33

不确定您正在查看什么“磁盘缓存”,但内存和磁盘使用情况只有微弱的相关性。用于创建 UIImage 的数据只是该对象实际使用的数据的一部分。这意味着活动对象将可以使用比创建它的数据更多的内存。

更复杂的是,UIImage 将在内存不足的情况下清除自身的图像数据,因此 UIImage 对象的大小在其存在过程中可能会有很大变化。

Not sure what "disk cache" you're looking at but memory and disk usage are only weakly related. The data used to create an UIImage is only part of the data the object actually uses. This means an active object will can use more memory than the data that created it.

To further complicate things, UIImage will purge itself of image data under low memory situations so size of UIImage object can vary widely over the course of its existence.

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