首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是正确的方式存储UIImages在应用程序中使用斯威夫特?

什么是正确的方式存储UIImages在应用程序中使用斯威夫特?
EN

Stack Overflow用户
提问于 2015-04-22 04:53:08
回答 2查看 193关注 0票数 0

我想让用户拍照,并将这张照片附加到一个“个人的个人资料”,将存储在CoreData。

存储这个UIImage的典型方法是什么?

编辑的

总的来说,每个表(“Person”)将包含几个字符串和这个UIImage。

我不想让UIImages占用太多的空间,所以当用户拍照时,我会把它裁剪并保存得尽可能小,而不会失去视觉完整性。但这是另一种稍后要找出的方法。

知道这些UIImages的大小范围是多少吗?我只需要一张头像照片。就像在iPhone上的“联系人”应用程序一样,我也希望能够通过iMessage或电子邮件与其他人分享这个“人”。

关于整个"person“文件是否需要是的任何建议

100 as存储在与相关数据相同的表中。 1mb存储在通过关系附加的单独表中,以避免不必要地加载 1mb存储在磁盘上并在核心数据中引用它

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-22 05:24:37

您可以在核心数据模型中使用Transformable类型,- that允许存储任何符合NSCoding的对象,其中包括UIImage。您的图像将有效地在数据库中,这可能更方便您的应用程序。

为了提高性能,还有一个允许外部存储的设置。小文件,将只是存储在数据库中的二进制文件;较大的文件,将写入外部文件。这样做的好处是对你来说是透明的。

有关更多细节,请查看这个问题:Storing UIImage in Core Data with the new External Storage flag

票数 1
EN

Stack Overflow用户

发布于 2015-04-22 05:14:41

下面的代码将帮助您将UIImage存储在document directory中,然后将document path存储到数据库中。

代码语言:javascript
复制
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true) {
    if paths.count > 0 {
        if let dirPath = paths[0] as? String {

            let writePath = dirPath.stringByAppendingPathComponent("Image2.png") 
            UIImagePNGRepresentation(image).writeToFile(writePath, atomically: true)
        }
    }
}

希望这能帮到你。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29788013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档