快速核心数据:保存来自摄像头的图像

时间:2016-04-01 13:36:29

标签: swift core-data camera swift2

我使用Swift而我正在开发一款拥有相机"按钮。如果我点击此按钮,iPhone相机就会打开。但是,当我去"使用Photo"该应用程序无法正常工作。

如何将镜头图像保存在阵列中,以便它们列在UITableView

 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == UITableViewCellEditingStyle.Delete{
        imageArray.removeAtIndex(indexPath.row)
        self.mytableview.reloadData()
    }
}

1 个答案:

答案 0 :(得分:2)

您正在将图像设置为imagePicker实例,该实例无法正常工作。相反,你想:

  1. 将图像序列化为NSData对象
  2. 将NSData对象存储在数据库中
  3. 从TableView的数据源中读取数据库中的每个图像 要获取NSData对象,可以将图像转换为PNG。您应该在didFinishPickingImage委托函数中添加类似的内容:

    让imgData = UIImagePNGRepresentation(图片) item.setValue(imgData,forKey:“image”) 上面的代码假设您的数据模型具有类型为Data且名称为image的列。然后,它会将转换后的图像插入数据库。

  4. 现在,在tableViewDelegate的cellAtRowForIndexPath中,从数据库中读取每个图像的数据并将它们放在单元格中,使用以下内容:     cell.imageView.image = UIImage(data:imgData)

    但是,我不建议使用此方法存储全分辨率照片。 核心数据是针对相对较小的值而非全分辨率图像而设计的。最好使用标准化的命名约定将图像存储在文件系统(应用程序的文档文件夹)中。