我想让用户拍照,并将这张照片附加到一个“个人的个人资料”,将存储在CoreData。
存储这个UIImage的典型方法是什么?
编辑的
总的来说,每个表(“Person”)将包含几个字符串和这个UIImage。
我不想让UIImages占用太多的空间,所以当用户拍照时,我会把它裁剪并保存得尽可能小,而不会失去视觉完整性。但这是另一种稍后要找出的方法。
知道这些UIImages的大小范围是多少吗?我只需要一张头像照片。就像在iPhone上的“联系人”应用程序一样,我也希望能够通过iMessage或电子邮件与其他人分享这个“人”。
关于整个"person“文件是否需要是的任何建议
100 as存储在与相关数据相同的表中。 1mb存储在通过关系附加的单独表中,以避免不必要地加载 1mb存储在磁盘上并在核心数据中引用它
发布于 2015-04-22 05:24:37
您可以在核心数据模型中使用Transformable类型,- that允许存储任何符合NSCoding的对象,其中包括UIImage。您的图像将有效地在数据库中,这可能更方便您的应用程序。
为了提高性能,还有一个允许外部存储的设置。小文件,将只是存储在数据库中的二进制文件;较大的文件,将写入外部文件。这样做的好处是对你来说是透明的。
有关更多细节,请查看这个问题:Storing UIImage in Core Data with the new External Storage flag。
发布于 2015-04-22 05:14:41
下面的代码将帮助您将UIImage存储在document directory中,然后将document path存储到数据库中。
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)
}
}
}希望这能帮到你。
https://stackoverflow.com/questions/29788013
复制相似问题