У меня проблема с Царством. Я хочу написать внешний сценарий JSON в моей базе данных Realm с помощью Swift. Но при этом он перезаписывает запись в моей базе данных каждый l oop. Когда я печатаю класс print(songClass)
, он показывает его правильно, но при этом
class SongR: Object {
@objc dynamic var id: String?
@objc dynamic var rawName: String?
@objc dynamic var title: String?
@objc dynamic var artist: String?
@objc dynamic var album: String?
@objc dynamic var playlist: String?
@objc dynamic var link: String?
}
let realm = try! Realm()
let songClass = SongR()
if let url = URL(string: "http://somewebsite.com/json.php") {
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
let jsonDecoder = JSONDecoder()
do {
let parsedJSON = try jsonDecoder.decode([Song].self, from: data)
let main = DispatchQueue.main.async {
try! realm.write {
for song in parsedJSON {
songClass.id = song.id
songClass.rawName = song.rawName
songClass.title = song.title
songClass.artist = song.artist
songClass.album = song.album
songClass.playlist = song.playlist
songClass.link = song.link
realm.add(songClass)
print(songClass)
}
}
}
} catch {
print(error)
}
}
}.resume()
}
он перезаписывает себя, и я получаю только последнее значение из файла JSON, отображаемого в моей базе данных Realm.
Кто-нибудь знает, как это исправить?
Кроме того, я хочу перезаписывать всю базу данных Realm всеми элементами из файла JSON каждый раз, когда я анализирую / обновляю файл JSON и не добавляйте их к этому. Как мне это сделать?
Заранее спасибо!