如何快速使用领域添加数百个图像数据

我对Realm还是陌生的,在这里有一些快速的经验。我正在尝试自己编写程序。我想在基于领域的数据库中保存图像数据和有关此图像的一些信息。如果必须像这样一幅一幅地添加每张图片,我会很痛苦:

    func loadimageData(){
    if itemimageResult!.count > 0 {
        return
    }
    let imageURL1 = Bundle.main.url(forResource: "ShakerColor1",withExtension: "png")!
    let imageURL2 = Bundle.main.url(forResource: "ShakerColor2",withExtension: "png")!
    let imageURL3 = Bundle.main.url(forResource: "ShakerColor3",withExtension: "png")!
    let imageData1 = try! Data(contentsof: imageURL1)
    let imageData2 = try! Data(contentsof: imageURL2)
    let imageData3 = try! Data(contentsof: imageURL3)
    let putImage1 = itemImage(value:[2,imageData1])
    let putImage2 = itemImage(value:[2,imageData2])
    let putImage3 = itemImage(value:[2,imageData3])
    try! realm.write{
        realm.add(putImage1)
        realm.add(putImage2)
        realm.add(putImage3)
    }
}

我想知道是否还有其他更好的方法。

非常感谢您的宝贵时间。

freddiew81 回答:如何快速使用领域添加数百个图像数据

这是一个答案,但不是唯一的答案。如果您有一张图像列表,并且想将它们写到境界,这就是我要做的。

从存储图像数据的类开始。您可以选择添加图像标题或图像的含义等。

class ImageClass: Object {
    @objc dynamic var imageData: Data?

    convenience init(withImageName: String) {
        self.init()
        let imageUrl = Bundle.main.url(forResource: withImageName,withExtension: "png")!
        let imageData = try! Data(contentsOf: imageUrl)
        self.imageData = imageData
    }
}

然后列出图像名称。我不知道您的存储方式,但我将它们存储在一个数组中,并将它们存储在应用程序捆绑包中。

let imageNames = [ "ShakerColor1","ShakerColor2","ShakerColor3" ]

然后代码构建ImageClasses数组

   let images = imageNames.map { name -> ImageClass in
      let image = ImageClass(withImageName: name)
      return image
   }

然后将图像最终写入Realm。

do {
    let realm = try Realm()

    try! realm.write {
        realm.add(images)
    }

} catch let error as NSError {
    print(error.localizedDescription)
}
本文链接:https://www.f2er.com/3131644.html

大家都在问