为什么当我使用@Model宏时,我的数组的顺序是随机的?
这个工作很好,
但是如果我将它们都声明为
数组项总是以随机顺序排列。当我重新加载显示它们的视图或向数组添加项时,顺序会被随机化。
这种行为也可以在示例代码这里中看到。 当将待办清单项添加到旅行中时,这些项总是以随机顺序显示。
这是一个测试版的错误吗?还是有意为之?
class TestModel {
var name: String?
var array: \[TestModel2\]
init(name: String = "") {
self.name = name
array = []
}
}
class TestModel2 {
var name: String?
init(name: String = "") {
self.name = name
}
}
这个工作很好,
array
中的所有项目都按照我添加的顺序排列。但是如果我将它们都声明为
@Model
,像这样:
@Model
class TestModel {
var name: String?
var array: \[TestModel2\]
init(name: String = "") {
self.name = name
array = []
}
}
@Model
class TestModel2 {
var name: String?
init(name: String = "") {
self.name = name
}
}
数组项总是以随机顺序排列。当我重新加载显示它们的视图或向数组添加项时,顺序会被随机化。
这种行为也可以在示例代码这里中看到。 当将待办清单项添加到旅行中时,这些项总是以随机顺序显示。
这是一个测试版的错误吗?还是有意为之?
@Relationship
。 - undefined@Relationship
只需要用于指定自定义的删除规则。"当一个模型包含一个类型也是模型(或者一组模型)的属性时,SwiftData会隐式地为你管理这些模型之间的关系。默认情况下,框架在删除相关的模型实例后将关系属性设置为nil。要指定不同的删除规则,请使用Relationship(::originalName:inverse:hashModifier:)宏来注释属性。" 当我在模型中添加@Relationship
时,对结果没有任何影响。 - undefinedSet
,所以很可能是这个原因导致你的数组属性一直变换顺序。 - undefinedTestModel
上有一个查询,你如何对TestModel2
进行排序? - undefined