[英]Realm writes data every time the app loads
我正在编写一个应用程序,它从 Excel 文档中获取信息并将数据保存在 Realm 中。 我的问题是,每次打开应用程序时,领域数据库都会保存一份信息。 现在我得到了 3 倍相同项目的 TableViews。
这是我的主视图控制器中的代码:
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)
进行保存
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.