gpt4 book ai didi

ios - 将资源嵌入二进制作为字节数组的缺点?

转载 作者:行者123 更新时间:2023-11-29 04:49:27 25 4
gpt4 key购买 nike

为了解决 iOS 对静态库的限制,我将一些二进制资源(主要是一些小图像)作为字节数组嵌入到静态库中。

从功能上来说 - 这效果很好。

我的问题是 - 这种方法有什么缺点?

具体来说,如果有人过度这样做并在二进制文件中嵌入大量大型资源 - 这会导致任何问题吗?

因为我不是 100% 确定 iOS 如何加载二进制文件/等等,我不确定这些数据是否在应用程序加载时全部加载到内存中,或者是否保存在 DATA 部分并从按需磁盘?

最佳答案

这取决于您如何生成字节数组。是 PNG/JPEg 数据还是原始像素?后者在存储空间和内存方面将比存储 JPEG/PNG 数据大得多。

字节数组中的数据始终位于内存中,并且可能需要再次复制才能实际加载图像,因此您使用的内存是两倍已从文件加载它。

此外,您还错过了 iOS 管理图像的一些内置行为。例如,如果您使用 [UIImage imagedNamed:@"foo.png"] 加载图像,则图像会被缓存,以便下次加载速度更快,并且加载多个副本不会导致重复的内存使用,并且缓存会自动清除如果内存不足。如果您从数据加载图像,您就会错过这些功能。

传统的方法是随您的库一起提供资源包,然后使用 NSBundle 方法从资源包加载资源(您可以加载其他包,然后使用 pathForFile:... 方法,就像使用mainBundle)。

关于ios - 将资源嵌入二进制作为字节数组的缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9114739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com