【发布时间】:2020-07-18 10:33:11
【问题描述】:
我有 2 个模型(一个“类别”模型和一个“项目”模型),如下所示。 “类别”通过属性“项目”与“项目”具有一对多关系
我想按“顺序”获取“类别”和“项目”的排序数据,但我该怎么做呢?
-
Category.swift
import Foundation import RealmSwift class Category: Object { @objc dynamic var name: String = "" @objc dynamic var order: Int = 0 // use this for sorting let items = List<Item> } -
Item.swift
import Foundation import RealmSwift class Item: Object { @objc dynamic var name: String = "" @objc dynamic var order: Int = 0 // use this for sotging let category = LinkingObjects(fromType: Category.self, property: "items") }
我只能按“类别”的顺序对“类别”进行排序,但不能对“项目”进行排序
let categories = realm.objects(Category.self).sorted(byKeyPath: "order", ascending: true)
【问题讨论】:
-
这个问题有点不清楚。 Category 对象有一个
items列表 - 您将如何按另一个列表对类别进行排序。假设类别 A 有一个包含 D 和 F 的列表。类别 B 有一个包含 C 和 Z 的列表。这种排序将如何工作? C 在 D 之前,但 F 在 Z 之前。您能否阐明您要做什么,或者甚至可以在问题中包含一个示例,说明您正在寻找什么结果? -
我在帖子中添加了一张照片,以更好地解释我想要完成的任务。我正在制作一个购物清单应用程序。首先我有一个类别。类别是蔬菜、肉类、水果等。然后对于每个类别名称,都有一个为其顺序分配的编号。对于每个类别名称,都有一个特定的列表。例如,在蔬菜类别中,有一个不同蔬菜的商品列表,如胡萝卜、茄子等。对于每个商品,都有一个对应的订单编号。例如,胡萝卜是 1,茄子是 2,土豆是 3,依此类推。
-
我想要完成的是能够按正确的数字顺序显示类别和项目。例如:对于类别……如果蔬菜是 2,水果是 3,肉类是 1,我希望它像这样显示……。肉 1 蔬菜 2 水果 3 我也想对每个类别的项目做同样的事情 例如:茄子是 2,马铃薯是 3,胡萝卜是 1 我希望它像这样显示……胡萝卜 1 茄子 2 土豆 3 我是能够为“类别”做,但我不能为项目列表做。
-
我查看了您的屏幕截图,但仍不清楚您希望对您的商品进行什么样的订购。我看到洋葱和番茄是排在前面的,但为什么它们排在橙子和苹果之前?换句话说,如果肉类是第一个类别,那么为什么鸡肉和猪肉没有列在项目列表的首位?这可以追溯到我在第一条评论中提出的问题 - 订购商品的目的是什么以及您如何确定该订单是什么?例如先吃肉,再吃蔬菜,再吃水果?还是别的什么?
-
对不起,我之前发的图有误,现在换成固定的。我只是希望它们在表格视图中按数字顺序列出。
标签: ios swift sorting realm relationship