订单 Coredata 子实体
Order Coredata Sub-entity
我的名为 Score
的实体包含名为 Messages
的实体。这是一个 one-to-many
的关系,对于一个 Score
,我们可以有很多 Messages
。
当我获取 Score
时,我可以访问 NSOrderedSet 中的 Messages
对象,因为我在 .xcdatamodel
文件中勾选了 Ordered。
它们只是没有正确排序,我想知道是否可以修复。
我在一个像这样构建的数组的表视图中显示它们
//_score exists and is set properly.
someArray = array-alloc-init;
for (Message *msg in _score.messages)
{
//Do my stuff because objects need remodeling in that view
//
[someArray addObject:msg];
}
[tableview reloadData]; //the tableview uses someArray
除了顺序不对之外,一切都很顺利。
例如,我可以在哪里(如果可能)告诉模型按 "CreationDate" 订购。 "Ordered" 复选框似乎以一种不起作用的方式对其进行排序。
有序集采用您最初填充关系的任何顺序(一次性或在项目添加到关系末尾时)。
因此,如果您可以保证可以按顺序添加它们,或者您编写了一些代码以在正确的位置插入到关系中,那么您可以继续当前的代码。
或者,您可以创建一个提取请求,使用关系 'backwards' 为指定的 Score
查找 Message
并适当地对它们进行排序。这里的主要好处是您可以决定即时更改排序顺序,您可以指定多个排序顺序(允许用户根据需要进行更改)并且您可以显式设置获取批处理大小(如果您有很多消息,这会有所帮助。
我的名为 Score
的实体包含名为 Messages
的实体。这是一个 one-to-many
的关系,对于一个 Score
,我们可以有很多 Messages
。
当我获取 Score
时,我可以访问 NSOrderedSet 中的 Messages
对象,因为我在 .xcdatamodel
文件中勾选了 Ordered。
它们只是没有正确排序,我想知道是否可以修复。
我在一个像这样构建的数组的表视图中显示它们
//_score exists and is set properly.
someArray = array-alloc-init;
for (Message *msg in _score.messages)
{
//Do my stuff because objects need remodeling in that view
//
[someArray addObject:msg];
}
[tableview reloadData]; //the tableview uses someArray
除了顺序不对之外,一切都很顺利。
例如,我可以在哪里(如果可能)告诉模型按 "CreationDate" 订购。 "Ordered" 复选框似乎以一种不起作用的方式对其进行排序。
有序集采用您最初填充关系的任何顺序(一次性或在项目添加到关系末尾时)。
因此,如果您可以保证可以按顺序添加它们,或者您编写了一些代码以在正确的位置插入到关系中,那么您可以继续当前的代码。
或者,您可以创建一个提取请求,使用关系 'backwards' 为指定的 Score
查找 Message
并适当地对它们进行排序。这里的主要好处是您可以决定即时更改排序顺序,您可以指定多个排序顺序(允许用户根据需要进行更改)并且您可以显式设置获取批处理大小(如果您有很多消息,这会有所帮助。