如何解决每当应用加载时,Realm都会写入数据
我正在编写一个App,该App从Excel文档中获取信息并将数据保存在Realm中。我的问题是,每次打开应用程序时,领域数据库都会保存信息的副本。现在,我得到的TableView具有3倍相同的项目。
这是我的主视图控制器中的代码:
class ViewController: UIViewController {
let realm = try! Realm()
var importExcel = Import()
var xslxConvert = xslxConverter()
var currentString: [String] = []
var Name = ""
@IBOutlet weak var VRLabel: UIButton!
@IBOutlet weak var configurationLabel: UIButton!
@IBOutlet weak var Label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
currentString = importExcel.Results()
Label.text = Name
dispatchQueue.main.async {
self.saveData()
print("Data from Excel saved")
}
}
//MARK: - SaveData to the Realm
func saveData() {
do {
try realm.write {
for item in currentString {
let newItem = FunctionData()
newItem.functionName = item
realm.add(newItem)
}
}
} catch {
print ("Error trying to Realm data,\(error)")
}
}
}
我该如何过滤某些内容,以使该应用程序仅保存Excel中的信息? 非常感谢您的帮助!
解决方法
好吧,我认为它不能与UUID()一起使用,因为它会一直存在差异。
let filter = // choose what you need
if let items = Array(realm.objects(FunctionData.self).filter("parameterName == %@",filter)) {
// Do not save
} else {
// Save
}
并尝试使用realm.add(newItem,update: .modified)
保存
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。