Я не вижу ничего плохого в коде.Вот что я сделал, чтобы проверить.Я создал два списка и два символа, а затем добавил первый символ в первый список и второй символ во второй список.
let l0 = Lists()
l0.listName = "list 0"
let l1 = Lists()
l1.listName = "list 1"
let c0 = Characters()
c0.character = "char 0 list 0"
c0.charID = 0
let c1 = Characters()
c1.character = "char 1 list 1"
c1.charID = 1
l0.charIDs.append(c0)
l1.charIDs.append(c1)
, а затем записал данные в область
do {
let realm = try Realm()
try! realm.write {
realm.add(l0)
realm.add(l1)
}
} catch let error as NSError {
print(error.localizedDescription)
}
а затем при проверке области с помощью Realm Studio все символы и списки были написаны правильно, а свойство Charistss Lists связано с символом.
Проблема может быть вызвана не кодом, а именами объектов.Например, объект Lists не является списком.Это один объект, который содержит свойство списков типов с другими свойствами, которые описывают этот конкретный список.Аналогично, объект «Персонажи» - это не группа персонажей, это отдельный персонаж со свойствами, которые описывают этого персонажа.
предположим, что эти объекты предназначены для игры типа приключений, и мы хотим отслеживать, какие персонажи посетилиопределенная область в игре.
Первый объект предназначен для определенной области в игре, которая описывает эту область и содержит свойство списка посещенных персонажей.
class AreaVisitedObject: Object {
@obj dynamic var: area_name = ""
@obj dynamic var: area_id = ""
var charsWhoVisitedList = List<Character>()
@objc dynamic var char_id = UUID().uuidString
override static func primaryKey() -> String? {
return "area_id"
}
...
а затем объект персонажа, который описывает каждый символ
class CharacterObject: Object {
@objc dynamic var char_name = ""
@objc dynamic var char_id = UUID().uuidString
override static func primaryKey() -> String? {
return "char_id"
}
...
Обратите внимание, что я добавил объект первичного ключа к персонажу, так как кажется, что у вас не будет дублированных символов, поэтому он будет гарантировать, что каждый из них уникален, и они могутбыть упомянутым этим uuid.
Надеюсь, это поможет.