Я думаю, вы спрашиваете, как добавить новый объект ItemClass к существующему ClassClass.
Во-первых, вы должны использовать первичные ключи для идентификации ваших предметов и категорий
class CategoryClass: Object {
@objc dynamic var category_id = NSUUID().uuidString
@objc dynamic var categoryName : String = ""
let items = List<ItemClass>()
override static func primaryKey() -> String? {
return "category_id"
}
}
то же самое с вашим ItemClass
class ItemClass: Object {
@objc dynamic var item_id = NSUUID().uuidString
@objc dynamic var itemName : String = ""
@objc dynamic var price : Int64 = 0
var parentCategory = LinkingObjects(fromType: CategoryClass.self, property: "items")
}
Похоже, вы пытаетесь сохранить класс var вашей категории
var categories = CategoryVaraible.categoryArray //not sure what this is
, но не делайте этоговыполните это
var categoryResults = Results<CategoryClass>? = nil
и используйте categoryResults в качестве источника данных для вашего tableView.
Когда пользователь выбирает категорию, а затем добавляет данные элемента, чтобы сохранить его, вы получитеКатегория на основе строки, выбранной во всплывающем окне категории, затем создайте элемент и, наконец, добавьте его в категорию в транзакции записи:
func saveItemToCategory() {
let category = self.categoryResults[selectedIndexInPopup]
let item = ItemClass()
item.itemName = some_item_name
item.price = some_item_price
try realm.write {
category.items.append(item)
}
}