- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Item 数据类,每个 Item 都有一个父项和许多子项,它们是来自父属性的 LinkingObjects。简化版:
@objcMembers class Item: Object {
dynamic var title: String = ""
dynamic var parent: Item?
let children = LinkingObjects(fromType: Item.self, property: "parent")
}
我需要能够对子项重新排序,并保留该更改。似乎因为 LinkingObjects 是一种容器类型,所以这是不可能的?在这种情况下,您会建议我如何处理这个问题——我应该更改 children
吗?正常List<Item>
并且每次都以两种方式手动更新 Realm ?有更好的解决方案吗?
最佳答案
The order in which the children appear matters, because users will want to choose their own ordering based on which items they want to see first.
这里的重要部分是您要控制“子项出现的顺序”。如果您能够识别数据“模型”和数据“ View ”之间的区别,那么您就可以找出答案。请记住,Realm 模型表示不在您的控制之下,您也不需要它。它如何存储在 Realm 数据库中不是你的问题。
实际上,当您请求 LinkingObjects
字段的结果时,它可能是数据库查询的结果,而不是直接从表中提取的结果。因此,字段中对象的顺序可能不一致,或者添加更多链接对象可能会导致额外的项目出现在结果中的任何位置。
正如您所说,重要的是 child 出现的顺序。这可以通过查询来控制。 LinkingObjects
类型允许您直接查询,即您可以调用:
item.children.sorted(byKeyPath: "title")
一个建议是为您的模型类型添加一个扩展来为您处理排序,为您需要的每种排序类型提供一个访问器,例如:
extension Item
{
var childrenSortedByTitle: Results<Item>
{
return children.sorted(byKeyPath: "title")
}
}
或者您可以使用 ascending
bool 参数使该函数在查询中使用。或者您可以添加第二个升序/降序查询。您还可以为您希望作为排序依据的每个其他参数添加额外的查询。或者您可以定义排序字段的枚举并将其作为参数传递。无论哪种方法最适合您。但绝对值得将查询详细信息隐藏在类扩展本身(恕我直言)中。
关于swift - 如何重新排序 Realm LinkingObjects 中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57030702/
给定以下示例 Realm 类: 汽车 class Car: Object { dynamic var make = "" let owner = List() } 人 class Pers
根据 Realm Swift 文档,我声明了一些类 Car 和 Tour,如下所示: import RealmSwift class Car: Object { dynamic var id =
我不知道如何在以下情况下使用LinkingObject。 class Message: Object{ ... dynamic fromUser : User?
我有一个 Book 类和一个 ReadingSession 类,其关系声明如下: public class Book: Object { // (…) var readingSessi
我有一个模型,它通过对自身的引用来引用所有对象。我想我可以使用这个属性,LinkingObjects(fromType: Outfit.self, property: "clothes")作为List
我的代码中有 5 个级别(或更多)链接 Realm 对象。项目,包括章节,包括任务,包括附件和... 我在其他一些问题中发现我应该获取链接对象,如下所示: private let sections =
我有一个 Android 应用程序,它使用 SQLite 及其 json1 扩展作为其数据库后端。虽然这可行,但操作 JSON 所需的 SQL 非常难以理解,甚至更难维护。因此,我目前正在尝试使用 R
如果我理解正确的话,那么只有当我访问该属性时才会加载 LinkingObjects?! Lists关系是写在realm数据库里的?! 那么如果我使用列表,对关系的访问会更快吗?也许它会使用更多存储空间
我有一个 Item 数据类,每个 Item 都有一个父项和许多子项,它们是来自父属性的 LinkingObjects。简化版: @objcMembers class Item: Object {
我有一个 Realm 模型类,我需要它是可解码的,这样我就可以从 JSON 序列化它并将它保存到数据库中。每个PortfolioItem与一个 Product 相关联在某些时候我需要去 Portfol
我定义了两个非常基本的 Object 如下: class Language: Object { dynamic var id: String = "" //"english", "chines
更新到 Cocoapods 1.0.0 后,我的 Realm Swift (1.03.1) 架构中出现以下错误。 错误: 使用未解析的标识符“LinkingObjects” 下面的示例: import
我需要列出一个对象的所有 LinkingObjects 类型的属性。 class Dogs: Object { dynamic var name: String = "" dynami
根据Realm documentation for v0.102.0 ,这就是您创建反向关系的方式: 人 class Person: Object { // ... other propert
我目前正在一个测试项目中试用 Realm,我一直在努力从列表中删除特定对象。 LensDBObject和 ListDBObject . LensDBObject 包含镜头列表,ListDBObject
我是 iOS 开发和 Realm 的新手,在代码优先数据库构建方面有不错的经验。 Routine 和 Workout 类之间存在一对多关系,其中一个 Routine 可能包含许多不同的锻炼。这是我的类
When I try to access var `inspection` in code block "Code from version 0.100.0" it returns nil Code
我是一名优秀的程序员,十分优秀!