gpt4 book ai didi

objective-c - objective-c - 在消息传递应用程序中保存图像

转载 作者:行者123 更新时间:2023-11-28 22:55:46 25 4
gpt4 key购买 nike

我正在构建一个消息传递应用程序,用户当然可以互相发送短信,现在我想添加图片发送支持。

我有一个 NSManagedObject 子类 ChatMessage 来表示具有 messageId、senderId、senderName、text、receiverId 等属性的聊天消息...

现在处理图像的最佳实践是什么?
我不是在谈论如何发送和接收图像,我在谈论如何保存它们(当用户获取图像以及用户上传和发送图像时)

将图像属性添加到 ChatMessage 并使用 Core Data 保存它是个好主意吗?或者也许将它保存到单独的文件?我需要在保存前调整它们的大小吗?在处理图像时,我是否应该预料到会遇到特殊问题?

最佳答案

埃亚尔,

Core Data 可以很好地处理图像。特别是,在 iOS v5 和 Lion 中,大型 BLOB 存储在持久存储之外。小型 BLOB 仍存储在数据库中。有两个警告。首先,在 Core Data 中,很容易创建保留循环,但这从来都不是一件好事,涉及大型 BLOB 的保留循环将导致操作系统相对快速地终止您的进程。因此,最佳做法是创建一个只包含 BLOB 和反向链接的叶实体。这大大降低了您使用 BLOB 创建保留周期的可能性。我建议与 BLOB 的关系是一对一的关系。其次,大 BLOB 会导致内存警告。 Core Data 似乎没有将这些图像内存映射到 RAM 中。因此,它们不能轻易地从您的常驻内存集中自动清除。就我而言,我有一个让 CD 处理 BLOB 的应用程序。我还有一个应用程序,其中的 BLOB 非常大 (12-24 MB)。在后一种情况下,我自己处理 BLOB 存储和内存映射。

是否调整图像大小实际上取决于您的应用程序和存储要求/限制。 CD 中的 BLOB 存储不会影响此问题。

安德鲁

关于objective-c - objective-c - 在消息传递应用程序中保存图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10837388/

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