#swift #realm
#swift #область
Вопрос:
У меня проблема, когда я сохраняю данные, используя базу данных Realm в Swift.
У меня есть две сущности, называемые «MathSolutions», «Папка». В одной папке может быть несколько вопросов. Отношения один ко многим.
Объект MathSolutions
class MathSolutions: Object {
dynamic var question = ""
dynamic var steps = ""
dynamic var createdDate = NSDate()
let solutions = List<Folders>()
class func JSONInboundMappingDictionary() -> [String:String] {
return [
//"id": "id",
"question" : "question",
"steps" :"steps",
"createdDate" : "createdDate",
"solutions" : "solutions"
]
}
}
Класс папки
class Folders: Object {
dynamic var folderName: String = ""
var folders = LinkingObjects(fromType: MathSolutions.self, property: "solutions")
}
Другая часть обработки
let mathSolution = MathSolutions(value: ["question": answers.question,"steps":realmcrud.createJOSNString(answers),"createdDate":NSDate()] )
realmcrud.saveMySolution(mathSolution,folder: folder!)
//MARK:-Save Solutions
func saveMySolution(mathSolutions:MathSolutions,folder: Folders){
let realm = try! Realm()
try! realm.write{
mathSolutions.solutions.append(folder)
realm.add(mathSolutions)
}
}
Созданная папка работает нормально. проблема в том, что при сохранении MathSolutions
я получил ошибку ниже.
Я всегда получаю ошибку ниже
2016-10-12 15:39:36.234 JIT[92648:1964826] *** Terminating app due to uncaught exception 'Invalid property name', reason: 'Property 'name' not found in object of type 'Folders''
Редактировать
Вызов части создания
let realmcrud = RealmCURD();
//let folder = Folders(value : ["id" : realmcrud.folderNextID(),"folderName":self.enteredFolderName])
let folder = Folders(value : ["folderName":self.enteredFolderName])
realmcrud.createFolder(folder)
Создать файл папки DB
//MARK:-Create folder
func createFolder(folders: Folders){
let realm = try! Realm()
try! realm.write{
realm.add(folders,update: false)
}
}
Мое требование заключается в том, что у меня есть папки и объекты MathSolution,
— У меня есть список папок, или пользователь может создать новую папку, после чего они могут сохранить мои математические задачи в выбранной папке из списка.
- Когда я сохранил, у меня возникла проблема выше.
- Я выполнил это требование, используя концепцию первичного ключа на начальном этапе, она работала нормально [это полностью ранняя стадия, концепция первичного ключа означает —
id
наличие файлов вFolders
иMathSolution
классе сущности, укажите ссылку на папку, используя идентификатор, т.е. Когда я сохраняю проблемы, она переходит вMathSolution
таблицу, какquestion , steps , id, createdDate
та жекак таблица папок ‘id, folderName
] но позже я решил использовать сопоставление объектов в тот раз, когда столкнулся с этой проблемой. это понятно? любое решение
Пожалуйста, есть идеи? пожалуйста, предложите
Комментарии:
1. Сохраняли ли вы
Solution
объекты раньше, когда свойствоfolderName
действительно вызывалосьname
?2. Вы изменили свою схему? Если да, выполнили ли вы миграцию? Не могли бы вы также предоставить некоторый код, где
Folders
создается?3. @ezcoding Нет. Первоначально я разрабатывал с использованием идентификатора и первичного ключа, позже моя команда предложила отказаться от концепции первичного ключа. Итак, я изменил код, но удалил приложение из эмулятора и установил снова. У меня нет ничего, что называется
name
4. @Dmitry. Я не менял имя схемы, но изначально разрабатывал с концепцией первичного ключа с идентификатором, а затем удалил эту часть и добавил сопоставление объектов между двумя таблицами. Я отредактирую свой вопрос и поделюсь кодом создания папки.
5. К сожалению, до сих пор не ясно, что там происходит, не могли бы вы поделиться полной трассировкой стека? или, что еще лучше, пример проекта, который воспроизводит эту проблему?