如何让用户向我的应用程序添加附件,如 pdf 或 jpg,然后如何将其存储在我的 Realm 数据库中?

How can I let the user add an attachment to my app like a pdf or jpg and then how can I store it in my Realm Database?

这是我存储在 Realm 数据库中的对象的代码

class Accomp2: Object {
    @objc dynamic var title: String = ""
    @objc dynamic var date: Date!
    @objc dynamic var month:String = ""
    required init() {
    }
    @objc dynamic var body:String = ""
    @objc dynamic var type:String = "Professional"
    @objc dynamic var identifier:String = ""
}

我希望能够将附件存储在一个名为 attachment 的变量中,但我不确定这是什么类型的变量。

有了这个对象,我希望能够在视图控制器上将这个附件显示为图片。

如果 Realm 数据库无法做到这一点,是否有另一种存储附件的方法?

Realm property Cheat Sheet

你想要的是 NSData() 例如Swift Data() 对象 - 他是一些简单的代码作为概念示例。

let url = //your file
let myData = Data(contentsOf: url) //please handle the optional correctly

class Accomp2: Object {
   @objc dynamic var acc_id = UUID().uuidString
   @objc dynamic var name = ""
   @objc dynamic var value = Data()
}

let x = Accomp2()
x.name = "Some name"
x.value = myData

重要!

虽然您可以这样做,但您可能不应该这样做。

Realm 不太适合处理对象内的文档。如果它是缩略图或几百 kb,就可以了。但是 PDF 可以变得巨大,而 Realm 不是正确的解决方案。

您应该将文件存储在另一个专为存储文件而设计的来源中 - Firebase Cloud Storage 就是一个这样的选项,然后将 URL 存储到您的 Realm 对象中的文件中。