У меня есть две модели, назовем их Школы и Учителя. Модели как под
@objcMembers public class Schools : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
dynamic var listTeachers : List<Teachers>? = nil
dynamic var teachersList : [Teachers]? = []
}
@objcMembers public class Teachers : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
}
Теперь перед сохранением данных я помещаю объекты (список) Учителей в объект School, затем сохраняю этот объект School в области закрытия записи.
после этого я просто получаю объект сферы School, и когда я получаю список учителей, он всегда получает Nil. В чем дело?
Я что-то упускаю или что-то не хватает, чтобы понять реальное свойство LIST?
пожалуйста помоги
Обновление: вот как я получаю объект
let mSavedItems = mDbHelper.realmObj.objects(Schools.self)
if let teachers = mSavedItems[0].teachersList{// here teacher list is nil
}
@Tobi вопрос обновлен. пожалуйста, проверьте
в mDbhelper вы создаете экземпляр области и используете его в realmObj?





Ваша декларация Schools неверна. Вы не должны объявлять List как динамический или изменяемый, и вы не должны делать его Optional. Как четко указано в документы, let listTeachers = List<Teachers>() - это правильный способ объявить отношение «многие ко многим».
Array также не поддерживает сохранение свойства типа Realm, поэтому следует удалить свойство teachersList : [Teachers]?.
@objcMembers public class Schools : Object {
dynamic var Id : String = ""
dynamic var UserId : Int64 = 0
dynamic var Name : String? = ""
let listTeachers = List<Teachers>()
}
Я новичок в iOS, быстро и т. д., Но я где-то читал, что мы не можем манипулировать значением let, поскольку оно будет постоянным
@Androidteem: да, let означает объявление свойства неизменным, но поскольку List является class и, следовательно, ссылочным типом, вы все равно можете изменять его свойства (элементы в этом конкретном случае), вы просто не можете изменить ссылку на список, что редко в любом случае имеет смысл делать. По этой причине почти во всех случаях следует объявлять List неизменяемым. Если вы новичок в Swift, было бы еще разумнее прочитать документацию Realm вместе с Swift Language Guide
@Androidteem, я не знаю, как я это пропустил, это правильный ответ для вашего случая, список
@ DávidPásztor благодарит за ответ. Но тогда вы можете показать мне, как сохранить элемент в списке, а затем получить эти элементы из списка. Пожалуйста, поделитесь этим кодом, спасибо
о боже, я понял. поэтому мы можем легко установить в нем значение, и он будет работать
Можете ли вы указать, как вы получаете доступ к объекту и возвращает ноль?