#ios #swift #realm
#iOS #swift #realm
Вопрос:
Я проверяю много других ответов, но все еще испытываю проблему с удалением базы данных формы данных realm. Это мой код ошибки :
Завершение работы приложения из-за неперехваченного исключения ‘NSInvalidArgumentException’, причина: ‘-[Rebel.RebelTableViewController удалить:]: нераспознанный селектор, отправленный в экземпляр 0x7fca7b40b5c0
Этот код из моего табличного представления для удаления:
if editingStyle == UITableViewCellEditingStyle.delete {
rowHere = indexPath.row
// it crashes the app when I want to delete from database
// delete(self.todos[self.rowHere!])
self.Rebel.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath as IndexPath], with: UITableViewRowAnimation.automatic)
}
Комментарии:
1. Никто даже не знает, что такое self. Бунтарь есть.
2. Есть много вопросов по удалению объекта в realm.
Ответ №1:
Сначала получите Object
модель в viewDidLoad()
var DatabaseModel: Results<ObjectClassRealm>!
override func viewDidLoad() {
super.viewDidLoad()
let realm = RealmService.shared.realm
DatabaseModel = realm.objects(ObjectClassRealm.self)
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
guard editingStyle == .delete else { return }
let objectData = DatabaseModel[indexPath.row]
RealmService.shared.delete(objectData)
}
Или вы можете удалить при нажатии кнопки
@IBAction func DeleteData(_ sender: Any) {
let realm = try! Realm()
let deleteData = realm.object(ofType: ObjectClassRealm.self,
forPrimaryKey: PRIMARYKEY)
if deleteData == nil {
print("No data in DB")
} else {
RealmService.shared.delete(deleteData!)
}
}
прочитайте документы realm, также вы найдете много решений по тому же вопросу.