Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在域中存储大型照片_Swift_Realm_Amazon Dynamodb - Fatal编程技术网

Swift 在域中存储大型照片

Swift 在域中存储大型照片,swift,realm,amazon-dynamodb,Swift,Realm,Amazon Dynamodb,我想存储几百张2MB的照片-我不应该在Realm中存储这些数据有什么限制或原因吗 另一种方法是将它们保存为文件,并使用Realm存储文件路径。我实际上倾向于这种方法,因为我使用领域的方式,我偶尔会清除领域文件(例如,当用户注销或有时为了避免迁移),然后通过网络获取他们的数据来重建它(我使用Amazon DynamoDB在服务器端存储他们的数据)。因此,我不想在清除领域文件时重新获取所有照片。这就是为什么我倾向于这种方法,尽管我感觉这样做并没有充分利用领域 我希望这个问题不要太模糊,我基本上是在寻

我想存储几百张2MB的照片-我不应该在Realm中存储这些数据有什么限制或原因吗

另一种方法是将它们保存为文件,并使用Realm存储文件路径。我实际上倾向于这种方法,因为我使用领域的方式,我偶尔会清除领域文件(例如,当用户注销或有时为了避免迁移),然后通过网络获取他们的数据来重建它(我使用Amazon DynamoDB在服务器端存储他们的数据)。因此,我不想在清除领域文件时重新获取所有照片。这就是为什么我倾向于这种方法,尽管我感觉这样做并没有充分利用领域


我希望这个问题不要太模糊,我基本上是在寻找关于如何存储大型照片的指导,因为我是如何使用Realm的。请注意,我不使用Realm Object Server的原因很简单,因为我已经在使用DynamoDB。

您可以在Realm中为
数据
字符串
属性存储多达16MB的数据,请参阅中的详细信息


但是,不建议将其用于图像。正如评论中所建议的,最好使用其中一个图像缓存库,这样您就不会重新蚀刻所有图像,也不会定义自定义缓存策略。

这样做有什么意义?为什么你们会想到把200mb下载到用户设备上?对不起,我不会一次下载所有200mb,就像需要个人照片一样。我想说的是,我之所以犹豫在Realm中存储照片,是因为如果我需要清除Realm文件,我将丢失所有照片,最终必须重新蚀刻它们。我想另一个选择是简单地为照片创建一个单独的领域文件。我只是不确定这是否是使用Realm的正确方法。请打开Glide或毕加索图书馆。在域内存储文件是毫无意义的。根据答案:“规则很简单:如果图像的大小很小,图像的数量很小,而且很少更改,那么您可以坚持将它们存储在数据库中。如果有一堆图像,最好直接将它们写入文件系统,并将图像的路径存储在数据库中。”这似乎是合理的,但我仍然想知道原因(例如,Realm是否限制可以添加多少数据,或者性能是否会受到影响)@problemslovery您应该存储照片的URL,并使用Glide或任何其他类似的图像加载库显示它们。您不应该在域文件中存储大量数据。谢谢!这非常有用!基于此,iPhone 4s可能会耗尽286 MB左右的内存,这意味着可能不适合将我的高分辨率Realm中的照片。我已经在使用SDWebImage进行图像缓存,但在这种情况下,我希望确保这些照片始终存在,因此我想我只是将它们存储在Caches目录中,并将文件路径存储在Realm中。感谢所有人的帮助!