当前位置: 首页 > 面试题库 >

将图像存储到CoreData-Swift

姬裕
2023-03-14
问题内容

在我的代码中,我设法用CoreData保存了textLabel,但似乎无法正确保存图像。我已经阅读了一些教程,并且知道必须将其转换为NSData。但是我该怎么做呢?

提前致谢!


问题答案:

核心数据并不是要保存图像等大的二进制文件。而是在文件系统中使用文档目录。

这是实现此目的的示例代码

let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
// self.fileName is whatever the filename that you need to append to base directory here.
let path = documentsDirectory.stringByAppendingPathComponent(self.fileName)
let success = data.writeToFile(path, atomically: true)
if !success { // handle error }

建议将filename零件以及与该图像关联的其他元数据保存到核心数据中,并在每次需要时从文件系统中检索。

编辑:还请注意,从ios8开始,由于动态生成沙盒化的app-
id,因此保留完整文件url无效。您将需要documentsDirectory根据需要动态获取。



 类似资料:
  • 我从Firebase存储中获取图像,用相机拍照,或者从图书馆中挑选一张。当其中一个完成时,我有一个类来存储,以便在需要时使用它。 现在我需要将此图像上传到Firebase存储(修改或新建,无所谓)。Firebase允许我使用以下选项之一:或,每个选项分别需要或。 我怎么能把我的,并从它获得一个或用于上传? -- 或者,为了解决这个问题,当我从Firebase存储中检索图像时,如何获取图像的? 无论

  • 问题内容: 我想在CoreData中存储托管对象的枚举状态 最后一步是将StateFullManagedObject的状态变量转换为ObjStatus以进行直接比较,这对我不起作用。例如,我不能在Int16和Int16枚举之间使用==运算符。我得到的编译时错误是 Int16不能转换为’MirrorDisposition’ 。请参阅以下条件: 如何在Int16和枚举之间进行比较/分配? 问题答案:

  • 主要内容:Mat类,方法和描述,创建和显示矩阵,使用JavaSE API加载图像要拍摄图像,我们可使用相机和扫描仪等设备。 这些设备记录图像的数值(例如:像素值)。 OpenCV是一个处理数字图像的库,因此需要存储这些图像进行处理。 OpenCV库的类用于存储图像的值。它代表一个维数组,用于存储灰度或彩色图像,体素体积,矢量场,点云,张量,直方图等图像数据。 这个类包含两个数据部分:头部()和一个指针() 头部 - 包含大小,用于存储的方法和矩阵地址(大小不变)等信息。 指针

  • 问题内容: 我正在使用python和图像模块(PIL)处理图像。 我想将图像对象的原始位流存储到redis,以便其他人可以使用nginx和httpredis直接从redis读取图像。 因此,我的问题是如何获取Image对象的原始位并将其存储到Redis中。 问题答案: 使用PIL 1.1.7,redis-2.7.2 pip模块和redis-2.4.10,我可以使它工作: 我发现这是不可靠的,因此此

  • 问题内容: 我在图像上传服务器上使用redis和spring框架。我需要将图像存储到Redis。我发现以下问题,但这是针对python的。如何使用python /PIL将图像存储到redis 我不确定这是否是最好的方法,但我想知道如何在Java中进行操作(最好使用spring框架)。我正在使用使用jedis的spring-data-redis。 我想知道将图像存储在Redis中是否是一个很好的策略